擲色子6000次分別統計出點子出現的次數
阿新 • • 發佈:2018-10-16
turn 怎麽 循環 題目 事情 次數 由於 重復 之間
由於剛學習了數組,那麽就用數組了。
可能出現的點子是1~6共六種,而且次數是一個整數,所以我們定義一個包含6個元素的整型數組來存放結果
int count[6]={0}
看題目做6000次,這是重復做一件事情,我們可以用for循環
for(int i=1;i<=6000;i++)//i表示做一件事情的次數
上面的for循環意思是重復做一件事情6000次,做什麽呢?擲色子,那麽擲色子這件事情就要寫在for循環的循環體中。
擲色子是一個隨機過程,每次都會產生一個1~6的隨機數,可以利用rand和srand來生成隨機數,但是rand每次生成的隨機數都相對比較大,怎麽產生1~6之間的數呢? 可以用取余算法,任何整數只要對6取余,那麽就會產生0~5之間的數,再加1就能產生1~6了,可以。把每次產生1~6之間的數分類討論,如果是1,就讓對應的count++ 。最後依次輸出count[0]~count[5]就可以了。
int main(void) { srand(time(0)); int count[6] = {0}; int res = 0; for (int i = 1; i <= 6000; i++) { res=(rand()%6)+1; switch (res) { case 1:count[0]++; break; case 2:count[1]++; break; case 3:count[2]++; break; case 4:count[3]++; break; case 5:count[4]++; break; case 6:count[5]++; break; } } for (int i = 1; i <= 6; i++) { printf("%d:%d\n",i,count[i-1]); } return 1; }
擲色子6000次分別統計出點子出現的次數