好笨,这都写不对怎么办

P1319 压缩技术

gggpx @ 2023-07-20 20:31:31

#include <stdio.h>

/*****************压缩技术***************/
int main()
{
    int n = 0, a[500];
    scanf("%d", &n);
    int size = n * n, max = 0, k = 0;
    for (; k < 500; k++)
    {
        if (max < size)
        {
            scanf("%d", &a[k]);
            max += a[k];
        }
        else
            break;
    }
    int u = 0;
    for (int i = 0; i < k; i++)
    {
        if (a[i] != 0)
        {
            if (i % 2 == 0)
            {
                for (int j = 0; j < a[i]; j++)
                {
                    if (u % n == 0 && u != 0)
                    {
                        printf("\n");
                    }
                    printf("0");
                    u++;
                }
            }
            else if (i % 2 == 1)
            {
                for (int j = 0; j < a[i]; j++)
                {
                    if (u % n == 0)
                    {
                        printf("\n");
                    }
                    printf("1");
                    u++;
                }
            }
        }
        else
            break;
    }
    return 0;
}

by gggpx @ 2023-07-20 20:32:17

#include <stdio.h>

/*****************压缩技术***************/
int main()
{
    int n = 0, a[50]; // 声明变量和数组
    scanf("%d", &n); // 输入n的值
    int size = n * n, max = 0, k = 0; // 计算最大值和数组中元素个数
    for (; k < 50; k++) // 读取数组元素
    {
        if (max < size)
        {
            scanf("%d", &a[k]);
            max += a[k];
        }
        else
            break;
    }
    int u = 0; // 计数器
    for (int i = 0; i < k; i++) // 解压数组元素并输出
    {
        if (a[i] != 0)
        {
            if (i % 2 == 0) // 偶数位置为0
            {
                for (int j = 0; j < a[i]; j++)
                {
                    if (u % n == 0 && u != 0) // 换行条件
                    {
                        printf("\n");
                    }
                    printf("0");
                    u++;
                }
            }
            if (i % 2 == 1) // 奇数位置为1
            {
                for (int j = 0; j < a[i]; j++)
                {
                    if (u % n == 0) // 换行条件
                    {
                        printf("\n");
                    }
                    printf("1");
                    u++;
                }
            }
        }
        else
            break;
    }
    return 0;
}

|