如何将矩阵传递给函数并计算每一行的总和? 这是我创建的功能,但是 我被困在这里。请帮助大家。
#include <stdio.h>
#define row 4
#define col 4
int Schum(int A[row][col]){
int sum, i, j;
for (i=0; i<row; i++){
sum = 0;
for (j=0; j<col; j++){
sum += A[i] [j];
}
}
return sum;
}
int main(){
int A[row] [col], i, j, sum;
for (i=0; i<row; i++){
for (j=0; j<col; j++){
printf("Enter number in [%d][%d]: ", i, j);
scanf("%d", &A[i] [j]);
}
}
for (i=0; i < row; i++){
for(j=0; j < col; j++){
printf("[%d][%d]: %d\t", i, j, A[i][j]);
sum = Schum(A);
}
printf("Sum of row%d: %d\n", i+1, sum);
}
}
答案 0 :(得分:1)
您的Schum函数不正确。您无需遍历矩阵的所有元素即可找到给定行的总和。您还错误地为main()中的矩阵的每个元素调用了Schum函数。每行只能调用一次。
答案 1 :(得分:1)
这里是一个。传递要累加其列的行号,并在列迭代之外但在行迭代内部调用Schum函数就足以实现目标。
#include <stdio.h>
#define row 4
#define col 4
int Schum(int A[row][col], int rowParam){
int sum = 0, j;
for (j = 0; j < col; j++){
sum += A[rowParam][j];
}
return sum;
}
int main(){
int A[row][col], i, j, sum;
for (i=0; i < row; i++){
for (j=0; j < col; j++){
printf("Enter number in [%d][%d]: ", i, j);
scanf("%d", &A[i][j]);
}
}
for (i=0; i < row; i++){
for(j=0; j < col; j++){
printf("[%d][%d]: %d\t", i, j, A[i][j]);
}
sum = Schum(A, i);
printf("Sum of row%d: %d\n", i+1, sum);
}
}