【发布时间】:2021-12-04 21:42:11
【问题描述】:
我真的不知道如何从我声明的函数中正确地将二维数组传递给我的主函数。程序需要计算两个 3x3 矩阵的总和,但输入需要通过函数进行。有人可以帮助我吗?我对编码比较陌生,这个程序是用 c 编写的。
#include <stdio.h>
#include <stdlib.h>
int addierer ()
{
int i=3,j=3;
int d[i][j];
printf("\n What are the numbers of the matrix? \n"); // Abfrage der Zahlen der Matrix
for (i = 0; i < 3; ++i){
for (j = 0; j < 3; ++j) {
printf("Enter number a%d%d : ", i + 1 ,j + 1);
scanf("%d", &d[i][j]);
}}
return (d[i][j]);
}
int main() {
int i=3,j=3;
int a[i][j], b[i][j], sum[i][j];
a[i][j] = addierer();
b[i][j] = addierer();
for (i = 0; i < 3; ++i)
for (j = 0; j < 3; ++j) {
sum[i][j] = a[i][j] + b[i][j];
}
printf("Sum: \n"); // Summe der beiden Matrizen
for (i = 0; i < 3; ++i){
for (j = 0; j < 3; ++j){
printf("%d ", sum[i][j]);
if (j == 3 - 1) {
printf("\n\n");
}}}
return 0;
}
【问题讨论】:
-
您要么必须为函数中的数组分配内存,要么将其传递给预先分配的数组以进行填充。例如
void addierer(int m, int n, int d[m][n])。或者void addierer(int d[][3]),因为您已经有效地硬编码了大小。
标签: arrays c function matrix return-value