【发布时间】:2013-07-28 15:52:48
【问题描述】:
这是我的代码,我需要它首先说出 1-10 个数字的数量,然后打印它们是哪些数字。它得到了正确的数字,但不是打印等于 1-10 的数字,而是打印前 10 个数字。
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main () {
int i;
int br = 0, brr = 0, brrr = 0, br1 = 0;
int polje[50];
srand(time(NULL));
for(i = 0; i < 50; i++) {
polje[i] = rand() % 30 + 1;
printf("%d ", polje[i]);
}
printf("\n");
for(i = 0; i < 50; i++) {
if(polje[i] >= 1 && polje[i] <= 10)
br++;
}
printf("Brojevi od 1 do 10 pojavljuju se %d puta a to su ", br);
do {
for(i = 0; i < 10; i++)
printf("%d ", polje[i]);
} while (polje[i] >= 1 && polje[i] <= 10);
return 0;
}
【问题讨论】:
-
请尝试用英文变量名重写
-
呃您的代码看起来应该打印前十个数字。我看不出你在哪里告诉它只打印 1 到 10 之间的数字。
-
你应该把
rand() % 30 + 1;换成(rand() % 30) + 1;,%的优先级低于+ -
@h3nr1x,这绝对不是真的。
%与(二进制)*和/具有相同的优先级 - 即高于+。 -
@CarlNorum 你是对的,对不起,大错特错,我的错