C语言编程问题(剪刀石头布判断赢家)
详细问题请参加图片我用VC++6.0写的代码是:#include<stdio.h>intmain(){inti,j,n,t,C,count1,count2;/*R石头S剪...
详细问题请参加图片
我用 VC++ 6.0 写的代码是:
#include <stdio.h>
int main()
{
int i,j,n,t,C,count1,count2; /*R石头 S剪刀 P布*/
char a,b;
while(scanf("%d",&t)!=EOF) /*t表示样例数目*/
{
for(C=0;C<t;C++) /*C用来计数*/
{
count1=0;
count2=0;
scanf("%d",&n);
for(j=0;j<n;j++) /*j用来计数*/
{
scanf("%c %c",&a,&b); /*输入字符R、S或者P*/
if(a=='R' && b=='S') /*R石头 S剪刀 P布*/
{
count1++;
}
else if(a=='S' && b=='R') /*R石头 S剪刀 P布*/
{
count2++;
}
else if(a=='R' && b=='P') /*R石头 S剪刀 P布*/
{
count2++;
}
else if(a=='P' && b=='R') /*R石头 S剪刀 P布*/
{
count1++;
}
else if(a=='S' && b=='P') /*R石头 S剪刀 P布*/
{
count1++;
}
else if(a=='P' && b=='S') /*R石头 S剪刀 P布*/
{
count2++;
}
else
{
count1++;
count2++;
}
}
if(count1>count2)
{
printf("Player1\n");
}
else if(count1==count2)
{
printf("TIE\n");
}
else
{
printf("Player2\n");
}
}
}
return 0;
}
希望大神指点…… 展开
我用 VC++ 6.0 写的代码是:
#include <stdio.h>
int main()
{
int i,j,n,t,C,count1,count2; /*R石头 S剪刀 P布*/
char a,b;
while(scanf("%d",&t)!=EOF) /*t表示样例数目*/
{
for(C=0;C<t;C++) /*C用来计数*/
{
count1=0;
count2=0;
scanf("%d",&n);
for(j=0;j<n;j++) /*j用来计数*/
{
scanf("%c %c",&a,&b); /*输入字符R、S或者P*/
if(a=='R' && b=='S') /*R石头 S剪刀 P布*/
{
count1++;
}
else if(a=='S' && b=='R') /*R石头 S剪刀 P布*/
{
count2++;
}
else if(a=='R' && b=='P') /*R石头 S剪刀 P布*/
{
count2++;
}
else if(a=='P' && b=='R') /*R石头 S剪刀 P布*/
{
count1++;
}
else if(a=='S' && b=='P') /*R石头 S剪刀 P布*/
{
count1++;
}
else if(a=='P' && b=='S') /*R石头 S剪刀 P布*/
{
count2++;
}
else
{
count1++;
count2++;
}
}
if(count1>count2)
{
printf("Player1\n");
}
else if(count1==count2)
{
printf("TIE\n");
}
else
{
printf("Player2\n");
}
}
}
return 0;
}
希望大神指点…… 展开
3个回答
展开全部
#include<stdio.h>
int main()
{
int t, n, s1, s2;
char a, b;
scanf("%d", &t);
while (t--) {
scanf("%d%*c", &n);
s1 = s2 = 0;
while (n--) {
scanf("%c %c%*c", &a, &b);
if ((a == 'R' && b == 'S') || (a == 'S' && b == 'P') || (a == 'P' && b == 'R'))
s1++;
else if ((b == 'R' && a == 'S') || (b == 'S' && a == 'P') || (b == 'P' && a == 'R'))
s2++;
else {
s1++;
s2++;
}
}
if (s1 > s2)
printf("Player 1\n");
else if (s1 < s2)
printf("Player 2\n");
else
printf("TIE\n");
}
return 0;
}
int main()
{
int t, n, s1, s2;
char a, b;
scanf("%d", &t);
while (t--) {
scanf("%d%*c", &n);
s1 = s2 = 0;
while (n--) {
scanf("%c %c%*c", &a, &b);
if ((a == 'R' && b == 'S') || (a == 'S' && b == 'P') || (a == 'P' && b == 'R'))
s1++;
else if ((b == 'R' && a == 'S') || (b == 'S' && a == 'P') || (b == 'P' && a == 'R'))
s2++;
else {
s1++;
s2++;
}
}
if (s1 > s2)
printf("Player 1\n");
else if (s1 < s2)
printf("Player 2\n");
else
printf("TIE\n");
}
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入的地方有问题,改为scanf( "%d%d" , &a , &b);
输出的地方也有问题,不过那个是小问题,你运行就知道了
输出的地方也有问题,不过那个是小问题,你运行就知道了
更多追问追答
追问
不懂,改了之后一直输出TIE! 好恼火……
追答
else后面要有大括号的,而且即使这样还有问题
后面是我写的,你看对不对
if (s1 > s2)
{
printf("Player 1\n"); printf("TIE\n"); printf("Player 2\n");
}
else
{
printf("Player 2\n"); printf("TIE\n");printf("Player 1\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Player 1 ; Player 2; 应该就是输出格式错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询