我昨天开始学习C ++,现在我尝试创建一个程序,该程序生成应存储在数组中的随机数。问题在于它仅存储最后生成的数字。这是我的代码(很抱歉,它看起来很糟糕-可能确实如此):
int num = 0;
int i = 0;
int generatedNumbers[10];
int main()
{
srand(time(NULL));
num = rand() % 10;
generatedNumbers[i] = num;
if (num != 0) {
cout << num << endl;
return choice();
} else {
main();
}
}
int choice() {
[.....USELESS STUFF....]
cout << generatedNumbers[i] << endl;
}
因此,假设程序生成数字:3、1、8、9。如果我想查看存储在generateNumbers中的数字,则出现的唯一数字是最后一个数字(在本例中为9),它出现四个时间(在这种情况下)。我敢肯定,解决问题非常容易,但老实说,我有点失去耐心了。 非常感谢!
答案 0 :(得分:1)
替换
num = rand() % 10;
generatedNumbers[i] = num;
使用
while (i<10) {
num = rand() % 10;
generatedNumbers[i] = num;
i = i + 1;
}
然后逐步在调试器中运行程序,以了解发生了什么。