样例过了,但是爆零

P1319 压缩技术

zkszks @ 2024-07-17 17:02:48

#include <iostream>

using namespace std;

int main(){
    int a,b=0,c=0;
    int n,m=1;
    cin>>a;
    for(int i=0;i<a*2;i++){
        cin>>n;
        if(m==1){
            for(int o=0;o<n;o++){
                cout<<0;
                b+=1;
                if(b==7){
                    b=0;
                    cout<<endl;
                    c+=1;
                }
            }
            m+=1;
        }else if(m==2){
            for(int o=0;o<n;o++){
                cout<<1;
                b+=1;
                if(b==7){
                    b=0;
                    cout<<endl;
                    c+=1;
                } 
            }
            m=1;
        }
        if(c==8){
            return 0;
        }
    }
}

by ss_xgz @ 2024-07-17 17:21:47

#include <iostream>
using namespace std;
int main(){
    int a,b=0,c=0;
    int n,m=1;
    cin>>a;
    for(int i=0;1;i++){
        cin>>n;
        if(m==1){
            for(int o=0;o<n;o++){
                cout<<0;
                b+=1;
                if(b==a){
                    b=0;
                    cout<<endl;
                    c+=1;
                }
            }
            m+=1;
        }else if(m==2){
            for(int o=0;o<n;o++){
                cout<<1;
                b+=1;
                if(b==a){
                    b=0;
                    cout<<endl;
                    c+=1;
                } 
            }
            m=1;
        }
        if(c==a){
            return 0;
        }
    }
}

几点问题: 1.输入的数量不为2*a个,而是直到数组构造完为止2.应在b==a时换行而不是b==7 3.应在c==a时停止而不是c==8 而样例刚好避开前面几个错误点,所以导致样例过了而全WA


|