Ⅰ 一道關於骰子的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]={"