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