【发布时间】:2020-10-07 08:04:12
【问题描述】:
我现在正在学习 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
【问题讨论】:
-
如果您的第 2 维是常数“3”,并且您在这 3 个项目上循环
limit次,难怪会出现问题。此外,难怪在调整数组大小时limit为 0 时会出现问题。 -
打开编译器警告。
标签: arrays c multidimensional-array