c语言小题目

①掷骰子游戏:两人玩骰子,游戏规则如下:1)两人轮流掷骰子,每次掷两个,每人最多掷10次。A的分数是,B的分数是,所以A赢2)将每人每次的分值累加计分3)当两个骰子点数都... ①掷骰子游戏:
两人玩骰子,游戏规则如下:
1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。A的分数是,B的分数是,所以A赢
2) 将每人每次的分值累加计分
3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。
4) 结束条件:当双方都掷10次或经过5次后一方累计分数为另一方的两倍。最后显示双方分数并判定优胜者。
我的代码如下:
main()
{ int i,j,l=0,z=0,s[2],b[2];
for(i=1;i<=10;i++)
{ srand(time(NULL));
if(i==5)
{if(l==z*2||z==l*2) break;
};
s[0]=rand()%6+1;
s[1]=rand()%6+1;
printf("A %d,%d",s[0],s[1]);
if (s[0]==s[1])
if(s[1]==6) l=l+8;
else l=l+7;
if(s[0]>s[1]) l=l+s[1];
if(s[0]<s[1]) l=l+s[0];
printf(" %d\n",l);
b[0]=rand()%6+1;
b[1]=rand()%6+1;
printf("B %d,%d",b[0],b[1]);
if (b[0]==b[1])
{ if(b[1]==6) z=z+8;
else z=z+7;
};
{
if(b[0]>b[1]) z=z+b[1];
if(b[0]<b[1]) z=z+b[0];
};
printf(" %d\n",z);
}
if(l>z) printf("A的分数是%d,B的分数是%d,所以A赢",l,z);
else printf("A的分数是%d,B的分数是%d,所以B赢",l,z);
}
可是结果不行,那里错了?求指教
展开
 我来答
chengyt10
2011-12-31 · TA获得超过191个赞
知道答主
回答量:190
采纳率:0%
帮助的人:102万
展开全部
不好意思我电脑上的DEV已经删掉了,只能随便看看了,给几条建议:
if(l==z*2||z==l*2) break;你考虑了5次之前就已经满足这个条件的情况吗?
if (s[0]==s[1])
if(s[1]==6) l=l+8;
else l=l+7;
if(s[0]>s[1]) l=l+s[1];
if(s[0]<s[1]) l=l+s[0];
这一段程序没有逻辑了,你应该用大括号把条件语句的内容括起来;
if (s[0]==s[1])
{
if(s[1]==6) l=l+8;
else l=l+7;
}
else
{
if(s[0]>s[1]) l=l+s[1];
else l=l+s[0];
}
晕,你下面那一段程序不是写的很好嘛?怎么上面没注意?
百度网友aebc321
2011-12-31 · TA获得超过523个赞
知道小有建树答主
回答量:469
采纳率:95%
帮助的人:180万
展开全部
srand(time(NULL));
放在循环外边。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式