怎么用C语言编写一个和电脑玩石头剪刀布的程序

怎么用C语言编写一个和电脑玩石头剪刀布的程序?... 怎么用C语言编写一个和电脑玩石头剪刀布的程序? 展开
 我来答
匿名用户
推荐于2017-11-26
展开全部
用1、2、3来表示剪刀、石头、布,然后先用scanf函数读取用户的输入,再用rand函数产生一个随机数,最后进行比较就可以了。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

void main()
{
int com,user;
char c;

srand((unsigned)time(NULL)); //初始化随机数,如果没有这条语句,每次运行电脑产生的随机数序列都是一样的
printf("进入游戏\n");
do{
printf("请出拳(1.剪刀、2.石头、3.布):");
scanf("%d",&user);
com=rand()%3+1; //产生1-3范围内的随机数
printf("电脑出%s\n",com==1?"剪刀":com==2?"石头":"布");
switch(com-user) //用电脑产生的数和用户输入的数的差值来判断胜负
{
case 0:
printf("平手\n");
break;
case 1:
case -2:
printf("电脑赢了\n");
break;
case -1:
case 2:
printf("你赢了\n");
}
printf("继续游戏按Y键、其它键退出");
getchar();
c=getchar();
}while(c=='y' || c=='Y');
printf("已经退出游戏");
}
匿名用户
推荐于2018-06-08
展开全部
#include <stdio.h>
#include <time.h>
#include<stdlib.h>
#define random(x) (rand()%x)
void display(int x)
{
switch(x)
{
case 1:printf("石头\n");break;
case 2:printf("剪刀\n");break;
case 3:printf("布\n");break;
}
}
void judge(int x,int y)
{
switch(x)
{
case 1:if(y==2)printf("用户赢\n");
else printf("用户输\n");break;
case 2:if(y==1)printf("用户赢\n");
else printf("用户输\n");break;
case 3:if(y==1)printf("用户赢\n");
else printf("用户输\n");break;
}
}
void main()
{
int x;
int y;
srand((int)time(0));
while(1)
{
printf("请出拳:");
scanf("%d",&x);
if(x==0)
break;
printf("你出");
display(x);
while(1)
{
y=random(3);
if(y!=0)
break;
}
printf("电脑出");
display(y);
if(x==y)
printf("打和\n");
else
judge(x,y);
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-05
展开全部
main()
{int <br/>}嗨,不想写了,我只说方法吧
用scanf()函数电脑要你输入一个数a(a=1,2,3)
随后由电脑产生1,2,3中的某个数,赋给b变量,然后a,b作比较,就可以知道谁赢了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-05
展开全部
1>从1石头,2剪刀,3布三个标量中随机产生两个标量.
2>再根据这三个量进行判定就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式