1. 程式人生 > >擲色子6000次分別統計出點子出現的次數

擲色子6000次分別統計出點子出現的次數

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次分別統計出點子出現的次數