首页 > 解决方案 > 自动填充数组

问题描述

我想定义两个变量,称为 x 和 y。根据该程序应从 0 到 x 和从 0 到 y 填充数组。

我尝试用 a 填充它,for它有点工作,但我无法正确打印出来。

#include <stdio.h>

#define x 4
#define y 4

void build(){
    int i=0, k=0;
    int matrix[x][y];

    for (i = 0; i < x; ++i) {
        for (k = 0; k < y; ++k) {
            matrix[i][k] = i;
            matrix[i][k] = k;
        }
    }

    printf("\t\n%d\n", matrix[x][y]);
}

我希望控制台中的数组看起来像这样。

0 1 2 3
0 1 2 3
0 1 2 3
0 1 2 3

标签: carrays

解决方案


你看,为了打印一个数组,你必须遍历整个数据。您不能在 C 中以这种简单的方式打印数组。
您的代码打印的是垃圾值,因为在索引 4,4 处,您的数组没有任何值。它的索引在 x 和 y 方向上从 0,1..3 开始。

希望能帮助到你。

#include <stdio.h>
#define x 4
#define y 4

void main(){
    int i=0, k=0;
    int matrix[x][y];

    for (i = 0; i < x; ++i) {
        for (k = 0; k < y; ++k) {
            matrix[i][k] = i ;
        }
    }
     for (i = 0; i < x; ++i) {
        for (k = 0; k < y; ++k) {
            printf("\t%d", matrix[i][k]);
        }
        printf("\n");
    }

}

推荐阅读