这是我的代码。我的问题是,为什么它只打印 5 个数字?为什么它不能像预期那样打印 10?
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int r, col;
srand((unsigned)time(NULL));
for (col=1; col<=10; col++){
r = rand() % 11;
printf("%d\n", r);
col++;
}
return 0;
}
最佳答案
因为,您正在执行 col++
两次,一次在循环体中,一次在循环后语句中。
for (col=1; col<=10; col++) //...................(i)
^^^^^^^
和
r = rand() % 11;
printf("%d\n", r);
col++; //.....................(ii)
^^^^^
因此,对于单次迭代,col
会增加两次,迭代计数会减半。
删除任一语句。
关于c - 仅循环迭代一半元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37964472/