我想計算一個從0-6出現的數字出現在給定的數組中,該數組具有從隨機數生成器生成的值。但是,我的代碼只返回'0'而不是統計數字出現在數組中的次數。我對此很陌生,有人可以幫助我嗎?如何計算給定數組中打印'0-6'之間的隨機數的次數?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int array[7];
int i;
int zero=0;
int one=0;
int two=0;
int three=0;
int four=0;
int five=0;
int six=0;
for (i=0; i<=7; i++)
array[i] = i;
srand((unsigned)time(NULL));
for (i=0; i<=7; i++)
{
int index1 = i;
int index2 = rand()%7;
int temp;
temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
if(i==48){zero++;}
else{if(i==49){one++;}
else{if(i==50){two++;}
else{if(i==51){three++;}
else{if(i==52){four++;}
else{if(i==53){five++;}
else{if(i==54){six++;}
}}}}}}}
for (i=0; i<=7; i++){
printf("array[%d] = %d\n",i,array[i]);}
printf("Number of times each number came up is:\n");
printf("Zero:%d\n", zero);
printf("One:%d\n", one);
printf("Two:%d\n", two);
printf("Three:%d\n", three);
printf("Four:%d\n", four);
printf("Five:%d\n", five);
printf("Six:%d\n", six);
return(0);
}
0)'I < = 7'應該是'i <7'1)'i == 48'總是爲false,因爲對於這種類型的行:'else {if(i = 0; i <= 7; i ++)' – BLUEPIXY 2015-04-05 21:19:58
' = 54){six ++;}'else和if之間的'{'不需要,一個空格將會執行,那麼大部分後綴'}的字符串都可以被刪除。請爲了便於閱讀/清晰起見,在每個大括號'{'和每個大括號前面加上unindent(相同數量)'後縮進(例如4個空格)'}'確保不要使用製表符縮進,因爲不同的編輯器/文字處理器經常有不同的選項卡設置使得代碼在不同的環境中幾乎不可讀。 I.E.使用空格進行縮進 – user3629249 2015-04-05 21:47:00
在打印語句組 – user3629249 2015-04-05 21:51:36