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 感谢大佬指教<.^.>