【发布时间】:2017-09-03 06:11:11
【问题描述】:
所以我要做的是打印出 7 个随机数,并且循环不应该打印出重复项。 当我尝试调试时,似乎我没有进入我的 if 语句所在的嵌套循环。
我还打印出一个内存值,随机数被复制。
我认为我的第二个嵌套 for 循环有问题,但我不知道是什么,如果有人能看到问题并向我解释我的嵌套第二个循环发生了什么,我将不胜感激。
p>#include <stdio.h>
#include <time.h>
#define SIZE 35
int main()
{
int number[SIZE];
srand(time(NULL));
for (int i = 1; i < 7; i++)
{
number[i] = rand() % 35 + 1;
for (int j = 0; j > i; j++)
{
if (number[i] == number[i])
printf("%d\n", number[i]);
i--;
}
}
for (int i = 0; i < 7; i++)
{
printf("%d\n", number[i]);
}
getchar();
return 0;
}
【问题讨论】:
-
如果它“没有进入我的嵌套循环”,这不会无缘无故地发生。您应该使用调试器来确定原因(检查变量等)
-
if (number[i] == number[i])什么时候会是假的? -
旁白:
rand() % 35==>rand() % SIZE。当数组长度为SIZE(35) 时,幻数7是什么?您似乎混淆了值的数量及其范围。 -
for (int j = 0; j > i; j++)如果i开始于1并且j开始于0什么时候j会大于i? -
确实,谢谢,是的,我对这些数字及其范围有点困惑,只是想了解发生了什么。
标签: c arrays for-loop visual-c++ random