求大佬帮忙解决这道c++题目,要求调用Sum函数计算二维数组每行元素之和,并将和保存在每行的第一个元素中

在main函数中初始化二维数组table,然后调用Sum函数计算该二维数组每行元素之和,并将和保存在每行的第一个元素中。返回main函数后,计算所有元素之和并保存到变量result中,最后输出result。请补充Sum函数体以实现题目要求。(注意:部分代码已给出且不可删改)
#include <iostream>
#include <cstdio>
using namespace std;
void Sum(int a[][4], int row)
{ //补充Sum函数体,实现题目要求

}
int main()
{
int i;
int result=0;
int table[3][4] = {{1, 2, 3, 4}, {2, 3, 4, 5}, {3, 4, 5, 6}};
Sum(table, 3); //调用子函数,计算各行和
for (i = 0; i < 3; i++)
result=result+table[i][0];
cout <<result<< endl;
FILE *fp;
fp = fopen("res.txt","w");
fprintf(fp,"%d",result);
return 0;
}

void Sum(int a[][4], int row)
{ //补充Sum函数体,实现题目要求

for (int i = 0; i < row; ++i) {
int result = 0;
for (int j = 0; j < 4; ++j) {
result += a[i][j];
}
a[i][0] = result;
}
}
请采纳,谢谢!追问

解决了,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-11
for(int i=0;i<=3;i++)
for(int j=1;j<=3;j++)
a[i][0]+=a[i][j];
你那个row可以不要,如果row是表示有几行的话,也可以把i<=3改成i<=row追问

运行结果不大对,但还是谢谢解答

追答

你这里好像不能这样弄,这样函数里面只是操作了a数组,和table数组没有关系。指针什么的我不太会弄,你把table定义成全局变量,然后把函数里面的改成

for(int i=0;i<=3;i++)
for(int j=1;j<=3;j++)
table[i][0]+=table[i][j];

这样应该就可以了

相似回答