NOICSP专属蒟蒻 @ 2022-07-24 08:29:56
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,temp;
int k=0,flag=0;
cin>>n;
for(int i=1;(scanf("%d",&temp)!=EOF);i++){
flag=(i+1)%2;
for(int j=temp;j>0;j--){
k++;
if(k==n){
cout<<endl;
k=0;
}
if(flag==0){
cout<<'0';
}
if(flag==1){
cout<<'1';
}
}
}
return 0;
}
最终结果就是(样例): 0001000 000100000011110001000000100000010001111111 也就是只有第一行换了行,其他没有换行操作,搞不明白。。。 PS:代码中的k是用来换行的
by _Remake_ @ 2022-07-24 08:34:04
建议使用
(!(k%n))
by hjsxhst2022 @ 2022-07-24 09:35:32
k和n相等的机会只有一次,错过了就再也没有输出endl了……
比如输入6,n=6,k加到6才会输出endl,再往后,就是7、8、9、10……k永远不会等于n,所以只有一个endl被输出。
by hjsxhst2022 @ 2022-07-24 09:39:34
@NOICSP专属蒟蒻