C switch case REALY奇怪的结果
问题描述:
因此,我试图在C中使用rand()命令,在这种情况下生成1到6之间的随机数。该部分完美,但后来我试图使用开关方法来计数每个数字有多少次出现,结果是......很奇怪。C switch case REALY奇怪的结果
继承人的代码:
包括
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个随机数字真的apeared,但这些都是结果:
个1:1978168284
二元数:-2
三元数: 1307605979
数四肢的:1978192464
数击掌的:6422480
数乱七八糟的:6422299
我看着代码几次,我只是不知道怎么说happend。 ..如果有人有fixisg的设备,请告诉我(:
答
具有自动存储时间的变量不会初始化为零。
你需要自己做。
读取未初始化变量的行为在C中是未定义的:您必须初始化它们。
+0
谢谢(:解决了它 –
初始化您的变量。 –
...意义设置'一=二= = =六= 0;'在循环之前。 C不适合你。 – Gene