所以我试图在C中使用rand()命令,在这种情况下生成1到6之间的随机数。那部分完美,但后来我尝试使用switch方法计算每个数字的数量,结果是......很奇怪。
继承人代码:
int main() {
int num;
int number;
int one;
int two;
int three;
int four;
int five;
int six;
printf("enter a number: ");
scanf("%d", &num);
for(int n = 1; n < num + 1; n++){
number = (rand() % 6) +1;
printf("%d", number);
switch(number){
case 1:
one++;
break;
case 2:
two++;
break;
case 3:
three++;
break;
case 4:
four++;
break;
case 5:
five++;
break;
case 6:
six++;
break;
}
}
printf("number of ones: %d\n"
"number of twos: %d\n"
"number of threes: %d\n"
"number of fours: %d\n"
"number of fives: %d\n"
"number of sixes: %d\n",
one, two, three, four, five, six);
return 0;
}
当我运行它并在10中写入时,10个随机数字真的开始,但这些是结果:
个数:1978168284
两个数:-2
三人数:1307605979
四月:1978192464
五个人:6422480
六位数:6422299
我看了几遍代码,我根本不知道发生了什么......如果有人有修复程序,请告诉我(:
答案 0 :(得分:1)
具有自动存储持续时间的变量未初始化为零。
你需要自己做。
在C中未定义读取未初始化变量的行为:您必须初始化它们。