當前位置:首頁 » 編程語言 » 統計骰子點數c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

統計骰子點數c語言

發布時間: 2022-12-13 03:15:43

Ⅰ 一道關於骰子的c語言問題

LZ的if分支的語法有問題,主要是{}的一一對應和;結尾上面。書寫規范的代碼格式能有效減少這些問題的發生

還有一些錯誤見下面修改過後的代碼注釋,以下代碼VS2010通過,運行正常了

=========================================================================

#include<stdio.h>

#include<stdlib.h>//srand()rand()在該頭文件中聲明,VS2010要求包含它

#include<time.h>

intmain()

{

srand((unsigned)time(NULL));//這里參數是NULL沒NELL這個宏

inttouzi1,touzi2,sum1,sum2;

touzi1=rand()%6+1;

touzi2=rand()%6+1;

sum1=touzi1+touzi2;

printf("第一次: 骰子和為%d ",sum1);

if(sum1==11||sum1==7)

{

printf("youwin! ");//語句結束要加『;』

}//if分支的語句塊的花括弧要一一對應

elseif(sum1==2||sum1==12||sum1==3)//elseif一般寫在同一行,這里不加『;』

{

printf("youlose! ");//同上『;』結束語句

}//同上,分支花括弧一一對應

else

{

for(intn=7;n!=0;--n)//這里用for循環會更加直觀

{printf(" 第二第%d次 ",8-n);

touzi1=rand()%6+1;

touzi2=rand()%6+1;

sum2=touzi1+touzi2;

printf("骰子和為%d ",sum2);

if(sum2==sum1)

{

printf("youwin! ");

return0;//玩家贏游戲結束,退出程序用return0;

}

}

printf("youlose! ");

}

}//缺少一個閉合的「}」

Ⅱ 擲100次骰子,統計各點數出現的。麻煩幫忙編程,謝啦!

你是要求各個點數出現的概率還是要這100次的顯示結果?這個擲100次骰子可以再C語言中模擬實現的。

Ⅲ C語言 擲100骰子,統計各點數出現的次數

用隨機數來模擬搖骰子

#include<stdio.h>
#include<time.h>/*用到了time函數*/

#defineLEN100/*隨機數個數*/
#defineMIN1/*隨機數最小值*/
#defineMAX6/*隨機數最大值*/

intmain(void){
inti,randArr[LEN],count[6]={0};

srand((unsigned)time(NULL));/*用時間做種,每次產生隨機數不一樣*/
for(i=0;i<LEN;i++){
randArr[i]=rand()%(MAX-MIN+1)+MIN;/*產生MIN~MAX的隨機數*/
count[randArr[i]-1]++;
}

printf("搖%d次骰子的點數結果: ",LEN);
for(i=0;i<LEN;i++){
printf("%d ",randArr[i]);
if(i+1%5==0)/*每輸出5個數換一行*/
putchar(' ');
}
putchar(' ');

puts("各點數出現次數統計:");
for(i=0;i<6;i++)
printf("%d點:%d ",i+1,count[i]);
putchar(' ');

getch();/*屏幕暫留*/
return0;
}

運行結果

Ⅳ C++兩個人玩骰子怎麼確定他們的數

具體操作步驟:
1)在VC++中建立一個工程;
2)在程序開始的注釋行中寫上你自己的信息;
3)生成1-6之間的一個隨機數,為了使隨機數更隨機,可以使用隨機數初始化函數srand()
模擬擲骰子的程序段參考如下:
printf(" 請擲骰子(按Enter鍵)");
getchar();
srand((unsigned)time(NULL));
num1=rand()%6+1;
printf(" 您擲的骰子點數是%d ",num1);
為了使上面一段程序能夠正常編譯連接,在程序開始應該包含下面的頭文件:
#include"stdlib.h"
#include"time.h"
4)在程序編譯正確後,要求在程序運行時提示您按ENTER鍵(模擬擲骰子).
在你按ENTER鍵後,生成第一個隨機數,並進行顯示;
之後提示你第二次擲骰子(按ENTER鍵),在你按ENTER鍵後,生成第二個隨機數,並進行顯示。
可以利用getchar()函數等待按下ENTER。注意在需要時使用函數fflush(stdin)清除鍵盤緩沖區。
5)使用ifelse轉移控制語句判斷兩次生成的隨機數的大小,分別根據不同情況輸出下面的語句之一:
" Player1的點數大,Player1勝出! "
" Player2的點數大,Player2勝出! "
" Player1和Player2點數一樣大,平局! "

Ⅳ 投100次骰子,統計1-6出現的次數。 用C語言編程。

#include"stdio.h"

#include"time.h"

#include"stdlib.h"

main()

{

system("cls");

inti,j,b;

inta1[100],a2[100],a3[100],a4[100],a5[100],a6[100],g[100];

intn1=0,n2=0,n3=0,n4=0,n5=0,n6=0;

j=0;

//b=0;

srand(time(NULL));

for(i=0;i<100;i++)

{

g[i]=rand()%6+1;

if(g[i]==1)

{

n1++;

}

if(g[i]==2)

{

n2++;

}

if(g[i]==3)

{

n3++;

}

if(g[i]==4)

{

n4++;

}

if(g[i]==5)

{

n5++;

}

if(g[i]==6)

{

n6++;

}

}

//printf("No.1:");

//for(j=0;j<6;j++)

//{

printf("出現1的次數為%d ",n1);

printf("出現2的次數為%d ",n2);

printf("出現3的次數為%d ",n3);

printf("出現4的次數為%d ",n4);

printf("出現5的次數為%d ",n5);

printf("出現6的次數為%d ",n6);

printf(" ");

//}

printf("總數為%d(校驗) ",n1+n2+n3+n4+n5+n6);

//b=sizeof(a)/sizeof(int);

//for(i=0;i<j;i++)

//{

//printf("%d次",a[j]);

//}

//printf(" ");

//return0;

while(1);

}

剛剛你那個,我加的,所以很亂。。。最基本的if判斷和printf輸出。你看看

Ⅵ C語言求解,急在線等!

#include<stdio.h>
#include<stdlib.h>

intmain(intargc,char*argv[]){
chars[100]={""};
chars1[50]={""};
chars2[50]={""};
printf("請輸入第一個字元串:");//字元串可包含空格
scanf("%[^ ]",s1);
fflush(stdin);
printf("請輸入第二個字元串:");//字元串可包含空格
scanf("%[^ ]",s2);
inti=0,j=0;
while(1)
{
if(s1[i]!='')
{
s[i]=s1[i];
i++;
}
else
{
break;
}
}
while(1)
{
if(s2[j]!='')
{
s[i]=s2[j];
i++;
j++;
}
else
{
break;
}
}
printf(" 合並後的字元串為:%s",s);
return0;
}

Ⅶ C語言,編程模擬骰子的一萬次投擲,統計並輸出骰子的六個面各自出現的概率。學的數組

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

int main()

{int i,x,a[6]={0};

srand((unsigned int)time(NULL));

for(i=0;i<10000;i++)

{

x=rand()%6;

a[x]++;

}

printf("投擲10000次 ");

for(i=0;i<6;i++)

printf("%d點出現:%d ",i+1,a[i]);

return 0;

}

Ⅷ C語言,把骰子投擲6000次,用數組算他們出現的次數

roll[7];
roll[7] = { 0 };
第一句,沒有初始化roll數組,roll數組是一組不確定的數值,具體是什麼數值取決於系統給roll分配的內存。後面的代碼都是在這組不確定的數值上累加,所以,結果依然是一組不確定的數值。
第二句,是將roll中的所有元素都初始化為0。後續代碼是以0為基礎計算的,所以結果是可以預見的。
因此,寫代碼都最好將變數初始化,如int i = 0;可以的話,不要直接int i;就算了,養成良好的習慣可以避免很多低級的BUG,特別是寫數以萬行的代碼時,如果這種寫法導致一些奇怪的問題時,將會浪費你N多的時間去查錯。

Ⅸ 擲100次骰子,統計各點數出現的次數。用c語言做的!拜託了 !!!

/*投骰子並統計
2011- 10-10
By Jimmy
*/

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

//模擬一次投骰子的函數,返回值為0~5,表示骰子的六個面
int get_number(void)
{
int num = 0;
num = rand() % 6;
return num;
}

main()
{
int data[6];
int i=0;
srand(time(NULL));//設置隨機數種子
for( i=0 ; i < 6 ; i++)//數據初始化
{
data[i]=0;
}
for( i=0 ; i<100 ; i++)//進行100次試驗
{
data[get_number()]++;
}
for( i=0 ; i < 6 ; i++)//統計結果輸出
{
printf("點數為%d的次數為 : %d\n",i+1,data[i]);
}

return 0;
}

Ⅹ 編寫程序c語言 模擬擲骰子游戲100次,編程統計並輸出骰子的6個面各自出現的次數。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

main()
{
intface;//儲存每次色子的點數
introll;//投擲色子的次數(循環變數)
intfrequency[7]={0};//記錄色子每個點數出現的次數

srand(time(NULL));//用系統時間來初始化系統隨機數的種子值

//用循環產生100次隨機數,並記錄每個點數出現的次數
for(roll=1;roll<=100;roll++)
{
face=rand()%6+1;
frequency[face]++;
}

printf("%4s%17s ","Face","Frequency");

//輸出每個點數出現的次數
for(face=1;face<=6;face++)
{
printf("%4d%17d ",face,frequency[face]);
}

system("pause");
}