求助,样例过了但是零分

P1319 压缩技术

Elsdt @ 2023-08-16 21:03:30

谢谢大佬相助


#include<bits/stdc++.h>
using namespace std; 
int main()
{
    int n;
    cin>>n;
    int inp;
    int sum=0;//判断总字符数量是否超过n*n 
    int sum2=0;//判断输出0或1 
    int sum3=0;//判断每行字符是否超过n 
    while(sum<=n*n)//读入 
    {
        cin>>inp;
        sum2++;
        for(int i=1;i<=inp;i++)
        {
            if(sum2%2==1)
            {
                if(sum3==n)
                {   
                    cout<<endl;
                    sum3=0;
                }   
                cout<<0;
                sum++;
                sum3++;
            }
            else
            {
                if(sum3==n)
                {
                    cout<<endl;
                    sum3=0;
                }
                cout<<1;
                sum++;
                sum3++;
            }
        }
    }
    return 0;
}```

by CCC100 @ 2023-08-16 21:20:17

首先,您的这个代码和样例并不一致,因为多输出了一行0

然后您的代码有几处错误,一是您本来的代码在 sum2%2==1 也就是奇数情况输出了0,后面也是一样的问题。二是先输出再改变sum2的值,因为定义的时候sum2已经是0了,如果再改变可能会有问题,最后是循环条件,我改成了 while(sum<n*n),应该多输出一行0就是原来循环条件的问题。

按照我的改法应该可以通过,我交过了


by Elsdt @ 2023-08-19 23:12:11

@CCC100 感谢大佬指教<.^.>


|