【发布时间】:2019-09-02 20:08:25
【问题描述】:
我昨天开始学习 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。如果我想查看存储在 generatedNumbers 中的数字,唯一出现的数字是最后一个(在本例中为 9),它显示为 4次(在这种特殊情况下)。我很确定很容易解决这个问题,但老实说我有点失去耐心。 非常感谢!
【问题讨论】:
-
打开你的 C++ 书中解释如何使用
for循环的章节并阅读它。以这种方式调用main()是完全错误的。阅读您的 C++ 书籍,并使用for循环。 -
你在学习什么资源?你不能调用
main,你不应该使用全局变量,可能rand也应该被<random>设施替换。 -
谢谢你们!在另一个函数中调用
main并使用全局变量时,我会更加小心。我没有书可以学习,我只是读了一些基础理论,我对自己说,解决一些问题应该很有趣。就是这样。 -
@Andrew 你应该以结构化的方式学习 C++。它有很多你需要遵循的怪癖和规则,如果你破坏它们,编译器不会警告你。见stackoverflow.com/questions/388242/…