求助!为什么样例和测试点输出结果和答案一样但是全WA了

P1320 压缩技术(续集版)

2023111785_ypj @ 2023-11-06 15:08:43

#include <stdio.h>
#include <math.h>
int main(){
    char a,b[40000];int c=0,x=1;
    while (scanf("%c",&a)!=EOF)
    {
        if(a=='\n')continue;
        else{
            b[c]=a;
            c++;
        }
    }
    printf("%d ",(int)sqrt(c));
    if(b[0]!=0)printf("0 ");
    for (int i = 0; i <=c; i++)
    {

      if (b[i]==b[i+1])
      {
        x++;
      }
      else
      {
        printf("%d ",x);
        x=1;
      }

    }

}

洛谷自动把输出结果的第七位读成第九位


by Wanderer_01 @ 2023-11-06 15:48:02

#include <bits/stdc++.h>
using namespace std;
int main() {
    char a,b[40005];
    int c=0,x=1;
    while(scanf("%c",&a)!=-1)
        if(a<'0'||a>'1')continue;
        else b[c++]=a;
    printf("%d ",(int)sqrt(c));
    if(b[0]!='0') printf("0 ");
    for (int i=0; i <=c; i++)
        if (b[i]==b[i+1]) x++;
        else printf("%d ",x),x=1;
}

@2023111785_ypj 帮你调好了。


by Wanderer_01 @ 2023-11-06 15:51:26

就是一些细节写错了。

if(b[0]!=0)
~~~ if(a<'0'||a>'1') ~~~ 洛谷的换行可能是 '\n\r'。 其他没什么问题。

|