首页 > 解决方案 > 在二维数组中添加元素时得到错误的输出

问题描述

我现在正在学习 C 编程,当我在数组中添加两个元素时没有得到正确的输出,我期待你的帮助来了解这个问题。

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int limit = 0, sum[limit][3];
    int a[limit][3];
    int b[limit][3];

    printf("Enter the size of arrays: \n");
    fflush(stdout);
    scanf("%d", &limit);
    printf("Enter the values of Array 1");
    fflush(stdout);
    for (int i = 0; i < limit; i++) {
        for (int j = 0; j < limit; j++) {
            scanf("%d", &a[i][j]);
        }
    }

    printf("Array 1: \n");
    fflush(stdout);
    for (int i = 0; i < limit; i++) {
        for (int j = 0; j < limit; j++) {
            printf("%d\t", a[i][j]);
        }
        printf("\n");
    }
    printf("Enter the values of Array 2");
    fflush(stdout);
    for (int i = 0; i < limit; i++) {
        for (int j = 0; j < limit; j++) {
            scanf("%d", &b[i][j]);
        }
    }
    printf("Array 2: \n");
    for (int i = 0; i < limit; i++) {
        for (int j = 0; j < limit; j++) {
            printf("%d\t", b[i][j]);
        }
        printf("\n");
    }
    for (int i = 0; i < limit; i++) {
        for (int j = 0; j < limit; j++) {
            sum[i][j]= a[i][j] + b[i][j];
        }
    }
    printf("Sum of 2 arrays: \n");
    for (int i = 0; i < limit; i++) {
        for (int j = 0; j < limit; j++) {
            printf("%d\t", sum[i][j]);
        }
        printf("\n");
    }

    return EXIT_SUCCESS;
}

电流输出:

输入数组的大小:

3

输入数组 1 的值

12
12
12
12
12
12
12
12
12

阵列 1:

12  12  12  
12  12  12  
12  12  12  

输入数组 2 的值

11
11
11
11
11
11
11
11
11

阵列 2:

11  11  11  
11  11  11  
11  11  11  

2个数组的总和:

22  22  22  
22  22  22  
22  22  22  

我发现我在代码中给出的确切数组不能锻炼。我的预期输出是:

23 23 23
23 23 23
23 23 23

标签: arrayscmultidimensional-array

解决方案


在:

int limit = 0, sum[limit][3];
int a[limit][3];
int b[limit][3];

limit为 0,您的数组将是:

int sum [0][3];
int a[0][3];
int b[0][3];

他们将没有任何空间。

limit你应该只在输入之后声明你的数组。

另请注意,数组的第二维3在您的内部for循环中固定为 ,而不是使用limit您应该使用该常量值,否则,如果limit是 4 或更多,您的程序将访问其边界之外的数组,调用未定义的行为。


推荐阅读