本地能过但全WA;咋回事呢?

P1320 压缩技术(续集版)

kjh21373456 @ 2022-02-13 20:35:49


 #include<stdio.h>
#include<string.h>
int main()
{
    char a[205][205];
    int f=0,p=0,q=0;
    fgets(a[0],205,stdin);//最后是'\n'会多算一位 
    int n=strlen(a[0]);
    n--;
    for(int i=1;i<n;i++)
    {
        fgets(a[i],205,stdin);
    }
    printf("%d ",n);
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {   
            if(j==n-1 && i==n-1 && f==0)//最后一个数输出 
            {   if(a[n-1][n-1]=='0')
                printf("%d",p+1);
                else
                {
                    printf("%d 1",p);
                }
                return 0;
            }
            if(j==n-1 && i==n-1 && f==1)//最后一个数输出 
            {   if(a[n-1][n-1]=='1')
                printf("%d",q+1);
                else
                {
                    printf("%d 1",q);
                }
                return 0; 
            }
            if(f==0)
            {
                if(a[i][j]=='0') p++;
                else 
                {
                    printf("%d ",p);
                    f=1;
                    q++;
                    p=0;
                }
            }
            else
            {
                if(a[i][j]=='1') q++;
                else 
                {
                    printf("%d ",q);
                    f=0;
                    p++;
                    q=0;
                }
            }
        }
    }
}```

by kjh21373456 @ 2022-02-13 20:48:17


#include<stdio.h>
#include<string.h>
int main()
{
    char a[205][205];
    int f=0,p=0,q=0;
    scanf("%s",&a[0]);//#改了这里#
    int n=strlen(a[0]);
    for(int i=1;i<n;i++)
    {
        scanf("%s",&a[i]);
    }
    printf("%d ",n);
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {   
            if(j==n-1 && i==n-1 && f==0)//最后一个数输出 
            {   if(a[n-1][n-1]=='0')
                printf("%d",p+1);
                else
                {
                    printf("%d 1",p);
                }
                return 0;
            }
            if(j==n-1 && i==n-1 && f==1)//最后一个数输出 
            {   if(a[n-1][n-1]=='1')
                printf("%d",q+1);
                else
                {
                    printf("%d 1",q);
                }
                return 0; 
            }
            if(f==0)
            {
                if(a[i][j]=='0') p++;
                else 
                {
                    printf("%d ",p);
                    f=1;
                    q++;
                    p=0;
                }
            }
            else
            {
                if(a[i][j]=='1') q++;
                else 
                {
                    printf("%d ",q);
                    f=0;
                    p++;
                    q=0;
                }
            }
        }
    }
} ```
##问题已解决,这样就能过了QWQ

by kjh21373456 @ 2022-02-13 20:51:29

~前车之覆,大家引以为戒~


by spider_418 @ 2022-02-20 11:54:31

我是用的gets读入字符串,结果找到一组输入数据,发现最后一行是一个空行,也被gets读进去了,所以N就比正确答案多一LOL


by zhangmingquan123 @ 2022-02-22 21:00:14

麻了 C语言yongdegets n=strlen(a); 用输入示例的数据得到的出结果和示例一样 但是提交零分

改成n=strlen(a)-1; 提交满分 单是用示例数据测试 天我写的什么东西


|