有大佬可以帮忙吗?不知道哪里错了.

P1319 压缩技术

Let_Fly @ 2022-08-13 18:29:21

#include <iostream>

using namespace std; 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    int n,b;
    cin>>n;
    int a[n*n];
    int sam=0,v=1;
    while(sam<n*n){
        cin>>b;
        sam+=b;
        if(v%2==0){
            for(int i=0;i<=b;i++){
                a[i]=1;
            }
        }
        else{
            for(int i=0;i<=b;i++){
                a[i]=0;
            }
        }
    }
    for(int j=0;j<=n;j++){
        for(int i=0;i<=n;i++){
            cout<<a[i+j*n];
        }
        cout<<endl;
    }
    return 0;
}

by 敢问高姓大名 @ 2022-08-22 19:01:51

#include <iostream>
using namespace std;
//int main(int argc, char** argv) {
int main(){
    int n,b;
    cin>>n;
    int a[n*n] = {0};
    int sam=0,v=1;
    int j = 0;
    while(sam<n*n){
        cin>>b;
        sam+=b;
        if(v%2==0){
            for(int i = 1;i<=b;i++){
                a[j++]=1;
            }
        }
        else{
            for(int i = 1;i<=b;i++){
                a[j++]=0;
            }
        }
        v ^= 1;
    }
    //for(int j=0;j<=n;j++){
    for (int j=0;j<n;j++){
        //for(int i=0;i<=n;i++){
        for(int i=0;i<n;i++){
            cout<<a[i + j * n];
        }
        cout<<endl;
    }
    return 0;
}

by 敢问高姓大名 @ 2022-08-22 19:04:58

@wyyl

第一:主函数最好不要写参数

第二:下标变量要拖到循环外面,不然每一次都会初始化为0,改变的下标自然是一个区域。

第三:v变量每次要改变,你忘了。

第四:循环要么从0~n-1,要么从1~n

第五:数组最好初始化,虽然我没有试过


by 敢问高姓大名 @ 2022-08-22 19:07:27

你的代码AC记录


by Let_Fly @ 2023-07-16 21:48:53

@敢问高姓大名 现在才看到(雾) 谢谢了 此帖结,而我也不是当年的那个我了(笑)


|