我需要一个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,
}
但是,我的代码无效,我似乎无法弄清楚如何修复它。任何帮助将不胜感激,谢谢!
答案 0 :(得分:1)
有几个问题:
首先,使用randomNum = 5 + (rand() % 10);
,您可以生成5
和14
之间的随机数,包括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;
}
上面的代码,我希望你能自己找到错误:)