亦行之 2024-03-09 10:36 采纳率: 34.5%
浏览 5

PAT1078c语言压缩输出结果错误

img

#include<stdio.h>
#include<ctype.h>
/*一个是字符串的结束标志’\0’ ,表示的是空字符,
一个是文件输入的结束标志EOF,其代表着常量-1。*/
int main()
{
    char s,b,c;
    scanf("%c",&s);
    int count;
    getchar();
    if(s=='C'){
        
        b=getchar();
        while((c=getchar())!=EOF){
            //不用EOF会出现超时错误 
            count=1;
            if(c==b){//相同计数 
                count++;
            }
            else{//不同输出 
                if(count==1){
                    printf("%c",b);
                }
                else{
                 printf("%d%c",count,b); 
                }
            }
            b=c;
        }
    //    getchar();
    }
    else if(s=='D'){
        //b=getchar();
        while((c=getchar())!=EOF){
            if(isdigit(c)){
                count=c-'0';
                while(isdigit(c=getchar())){//不止一位 
                    //count=(c-'0')*10+b-'0';
                    count=count*10;
                    count+=c-'0';
                }
                for(int i=0;i<count;i++){
                    printf("%c",c);
                }
            }
            else{//没有数字直接输出字符 
                printf("%c",c);
            }
        }
    //    getchar();
    }
    return 0;
 } 

输入测试1时,无法得到正确答案 请问这是为什么

img

  • 写回答

5条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-03-09 12:12
    关注

    【相关推荐】



    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7475520
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:PAT 1059 c语言竞赛(测试点2未过,已通过)
    • 除此之外, 这篇博客: PAT乙级1018C语言中的 思路 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      就输入判断a和b的每个手势赢的次数,最后输出他们输赢和平均的次数,最后比较哪个手势赢的最多输出就行。

      #include<stdio.h>
      int main()
      {
          int n=0;
          scanf("%d",&n);
          char c1,c2;//a和b的输入
          int a_winB=0,a_winC=0,a_winJ=0,b_winB=0,b_winC=0,b_winJ=0,bw=0,aw=0,pj=0;
          for(int i=0;i<n;i++)
          {
              scanf(" %c %c",&c1,&c2);
              //这里第一个%c前一定要加空格,因为上面输入整型的时候会留下一个回车,我们直接%c获取的是回车
              if(c1==c2) pj++;//平局
              else if(c1=='C'&c2=='J') a_winC++;//a出锤子赢
              else if(c1=='J'&c2=='B') a_winJ++;//a出剪刀赢
              else if(c1=='B'&c2=='C') a_winB++;//a出布赢
              else if(c2=='C'&c1=='J') b_winC++;//b出锤子赢
              else if(c2=='J'&c1=='B') b_winJ++;//b出剪刀赢
              else if(c2=='B'&c1=='C') b_winB++;//b出布赢
          }
          bw=b_winB+b_winC+b_winJ;//b赢的次数
          aw=a_winB+a_winC+a_winJ;//a赢的次数
          printf("%d %d %d\n",aw,pj,bw);
          printf("%d %d %d\n",bw,pj,aw);
          if(a_winB>=a_winC&&a_winB>=a_winJ) printf("B ");//输出他们赢的最多的是出的什么并输出
          else if(a_winC>=a_winJ) printf("C ");
          else printf("J ");
          if(b_winB>=b_winC&&b_winB>=b_winJ) printf("B");
          else if(b_winC>=b_winJ) printf("C");
          else printf("J");
          return 0;
      }
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 3月9日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真