回忆是个萌新 2023-07-27 15:21 采纳率: 63.6%
浏览 14
已结题

7-40 稳赢,输入上的问题

7-40 稳赢
分数 15
作者 陈越
单位 浙江大学
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。

输入格式:
输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。

输出格式:
对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。

输入样例:
2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End
输出样例:
Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu


#include<stdio.h>
#include<string.h>
int main(){
    int n;
    scanf("%d",&n);
    char s[1000];
    int count=0;
    while(1){
        scanf("%s",&s);
        if(strcmp(s,"End")==0)//一定要放到最上面,不能放到下面
            break;
        if(count==n){
            puts(s);
            count=0;
            continue;
        }
        if(strcmp(s,"ChuiZi")==0)
            printf("Bu\n");
        else if(strcmp(s,"JianDao")==0)
            printf("ChuiZi\n");
        else if(strcmp(s,"Bu")==0)
            printf("JianDao\n");
        count++;
    }
} 

代码是会写,不懂它的输入是怎么一回事

img


像这个,输入了chuizi不应该返回个bu吗,但是什么也没返回,输入End就直接结束了

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2023-07-27 15:26
    关注

    if(strcmp(s,"ChuiZi") 这里 C Z 是大写的,而输入的时候 chuizi 都是小写的。后面的JianDao Bu 都是第一个字母是大写的,输入时要注意。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月5日
  • 已采纳回答 7月28日
  • 创建了问题 7月27日