石头剪子布(字符串)c语言,石头、剪刀、布程序,C语言模拟

/*同问用C编写:同学 A 和B两个人玩最简单的石头剪子布游戏,游戏规则如下:石头赢剪子;剪子赢布;布赢石头;

如果二者相同,则平局;并且规定,如果赢一局则得 2 分,平局的话双方各得 1 分,输的人不得分。两个人一共玩了 N 局,

并且已知每个人每局出的是什么,我们用字符’R’代表石头,’S’代表剪子,’P’代表布。并且给出两个字符串代表两个人每局的出法。

对于这个游戏,输出赢家是谁,并且输出他的得分,如果最后出现了平分,则输出“TIE”加上平分的分数,用空格隔开(具体输出方式见样例)。*/

程序1:

#include

int comp(char a,char b)//A的每一局得分函数

{

if(a==b)return 1;

if(a=='R'&&b=='S')return 2;

if(a=='R'&&b=='P')return 0;

if(a=='S'&&b=='R')return 0;

if(a=='S'&&b=='P')return 2;

if(a=='P'&&b=='R')return 2;

if(a=='P'&&b=='S')return 0;

}

int main()

{

int scoreA=0,scoreB=0;//分别代表A和B的得分

char a,b;//分别代表A和B出的形状

int n;//比较的局数

int i;//循环变量

int temp;//临时存储函数comp的返回值

printf("R:石头 S:剪子 P:布\n");

printf("请输入比较的局数:");//输入比较局数

scanf("%d",&n);

for(i=0;i

{

printf("inputA%d:",i+1);

getchar();

scanf("%c",&a);//输入A出的

printf("inputB%d:",i+1);

getchar();

scanf("%c",&b); //输入B出的

temp=comp(a,b);

scoreA+=temp;//累加A的分数

scoreB+=(2-temp); //累加B的分数

}

if(scoreA>scoreB)//输出A和B的比较结果

printf("A(%d)赢B(%d)输\n",scoreA,scoreB);

else

if(scoreA

printf("A(%d)输B(%d)赢\n",scoreA,scoreB);

else

printf("TIE分数都是%d\n",scoreA);

system("pause");

return 0;

}

程序2:

#include

#define MAXSIZE 100

int comp(char a,char b)//A的每一局得分函数

{

if(a==b)return 1;

if(a=='R'&&b=='S')return 2;

if(a=='R'&&b=='P')return 0;

if(a=='S'&&b=='R')return 0;

if(a=='S'&&b=='P')return 2;

if(a=='P'&&b=='R')return 2;

if(a=='P'&&b=='S')return 0;

}

int main()

{

int scoreA=0,scoreB=0;//分别代表A和B的得分

char a[MAXSIZE],b[MAXSIZE];//分别代表A和B出的形状

int n;//比较的局数

int i;//循环变量

int temp;//临时存储函数comp的返回值

printf("R:石头 S:剪子 P:布\n");

printf("请输入比较的局数:\n");//输入比较局数

scanf("%d",&n);

//printf("inputA:");

getchar();

for(i=0;i

{

scanf("%c",&a[i]);

}

getchar();

for(i=0;i

{

scanf("%c",&b[i]);

}

for(i=0;i

{

temp=comp(a[i],b[i]);

scoreA+=temp;//累加A的分数

scoreB+=(2-temp); //累加B的分数

}

if(scoreA>scoreB)//输出A和B的比较结果

printf("A(%d)赢B(%d)输\n",scoreA,scoreB);

else

if(scoreA

printf("A(%d)输B(%d)赢\n",scoreA,scoreB);

else

printf("TIE %d\n",scoreA);

system("pause");

return 0;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值