需要帮助显示用户输入的整数的最小值/最大值

时间:2017-11-14 02:55:18

标签: c++

我需要一个c ++程序的帮助:

“提示用户输入N个整数并确定/显示整数 具有最高和最低值 - 使用单独的函数返回最高和最低值。 N是5到10之间的随机数(包括两者)。“

这是我到目前为止所做的:

 public Icings Icings { get; set; }
 public enum Icings
{
    [Display(Name = "Almond Butter Cream")] AlmondButterCream = 1,
    [Display(Name = "Butter Cream")] ButterCream,
    [Display(Name = "Butter Cream Icing")] ButterCreamIcing,
    [Display(Name = "Chocolate Butter Cream")] ChocolatebutterCream,
    [Display(Name = "Fondant Accents")] FondantAccents,
    [Display(Name = "Key Lime Butter Cream")] KeyLimeButterCream,
    [Display(Name = "Lemon Butter Cream")] LemonButterCream,
    [Display(Name = "Marshallmallow Fondant")] MarshallmallowFondant,
    [Display(Name = "Orange Butter Cream")] OrangeButterCream,
    [Display(Name = "Strawberry Cream Cheese")] StrawberryCreamCheese,
    [Display(Name = "White Chocolate Butter Cream")] WhiteChocolateButterCream,






}

但是,我的代码无效,我似乎无法弄清楚如何修复它。任何帮助将不胜感激,谢谢!

3 个答案:

答案 0 :(得分:1)

有几个问题:

首先,使用randomNum = 5 + (rand() % 10);,您可以生成514之间的随机数,包括int num[10],可能超过randomNum = 5 + (rand() % 6);。使用5..10获取for (int i = 0; randomNum <= i; i++)之间的值。

在您的循环random <= i中,randomNum超出了数组范围,因为10可以达到num[10]int num[10]已超出范围... randomNum < i。改为写smallNum = num[randomNum]

smallNum = num[0]同样的问题;它超出了数组范围;请改用smallNum

BTW:我会解释你的作业,你输入一次数字,然后在两个不同的函数中找到最小和最大的数字。在您的代码中,您输入两次数字......

并且:将int smallestNum() { ... return smallNum; }传递给覆盖其值的函数是无用的。我宁愿使用类似Minimum hardware的函数。

希望它有所帮助。

答案 1 :(得分:0)

除了第一个答案,这个循环毫无意义:

for (int x = 1; x <= randomNum; x++) {
    cout << "Enter an integer: ";
    cin >> num[randomNum];
}

randomNum每个循环都是一样的,所以你只需要覆盖相同的数组值。

和...

for (int i = 0; i <= i; i++)

这个循环错了。您正在检查i <= i,它将始终评估为真。

答案 2 :(得分:0)

试试这个,

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>

using namespace std;

void randNumGenerator();
void smallestNum();
void largestNum();
void getInput();

int num[11];
int length;

int main(){
  smallestNum();
  largestNum();
  return 0;
}

void randNumGenerator(){
  int from = 5;
  int to = 10;
  srand(time(0));
  length = from + (rand() % (to - from));
}

void getInput(){
  for (int x = 1; x <= length; x++) {
    cout << "Enter the integer num[" << x << "]: ";
    cin >> num[x];
  }
}

void smallestNum(){
  cout << "Finding smallest integer\n";
  randNumGenerator();
  getInput();
  int smallNum = num[1];
  for (int i = 1; i <= length; i++)
    if (num[i] < smallNum)
      smallNum = num[i];
  cout << "The smallest integer is: " << smallNum << endl;
}

void largestNum(){
  cout << "Finding largest integer\n";
  randNumGenerator();
  getInput();
  int largeNum = num[1];
  for (int i = 1; i <= length; i++)
    if (num[i] > largeNum)
      largeNum = num[i];
  cout << "The largest integer is: " << largeNum << endl;
}

上面的代码,我希望你能自己找到错误:)