/*同问用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;
}