我无法正常使用我正在为家庭作业编写的程序。该作业要求我编写一个抽奖模拟,其中用户猜测1到40之间的7个数字。然后将这些数字与来自单独函数的随机生成的数字进行比较。此函数用于请求并将7个数字存储在数组中:
const int size = 7;
int getLottoPicks(int userNum[size]) { //collects and stores the user input
for (int i = 0; i < size; i++) {
cout << "Please enter number " << i+1 << ": ";
cin >> userNum[i];
if (userNum[i] < 1 || userNum[i] > 40) { //keeps the number between 1 and 40
cout << "The number must between 1 and 40." << endl
<< "Please enter another number: ";
cin >> userNum[i];
}
}
return userNum[size];
}
目前此功能输出的内容如 0096F71C 而不是输入的数字。
我需要做些什么修改才能在调用时输出7号数组? 此外,查找和防止用户输入重复值的最佳方法是什么?
提前致谢。
答案 0 :(得分:0)
除了提示之外,您的功能不会输出任何内容。并且它返回一个元素,超过数组末尾。你有不确定的行为。
我建议您不需要返回任何内容,因为您的函数已经插入到给定的数组中。现在要修复它,您可以执行以下操作:
const int size = 7;
void getLottoPicks(int userNum[size]) { //collects and stores the user input
for (int i = 0; i < size; i++) {
cout << "Please enter number " << i+1 << ": ";
cin >> userNum[i];
if (userNum[i] < 1 || userNum[i] > 40) {
cout << "The number must between 1 and 40." << endl
<< "Please enter another number: ";
cin >> userNum[i];
}
for (int j = i; j > 0; --j) {
if (userNum[i] == userNum[j]) {
cout << "Already entered this number";
}
}
}
}