关于换行问题的求助

P1319 压缩技术

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专属蒟蒻


|