C++难题 二维数组求和

一个二维数组第一行和第一列所有元素的值均为 1,其他每个元素等于其左边和上边的元素之和。
  给定二维数组的大小,求这个二维数组所有元素的和。

输入一行,包含两个整数 n, m,分别表示数组的行数和列数。

输出一个整数,表示所有元素的和。

样例输入:3 4
样例输出:34

对于所有评测数据,1<=n<=10, 1<=m<=10

求大佬发代码

#include<stdio.h>

#include<string.h>

int main(){

int n,m;

int sum=0;

int a[20][20]={0};

scanf("%d%d",&n,&m);

for(int i=1;i<=n;i++)

a[i][1]=1;//第一行赋值1 

for(int i=1;i<=m;i++)

a[1][i]=1;//第一列赋值1 

for(int i=1;i<=n;i++){

for(int j=1;j<=m;j++){

if(i!=1&&j!=1){//第一列和第一行除外

//每个元素等于其左边和上边的元素之和 

a[i][j]=a[i-1][j]+a[i][j-1];

}

}

}

for(int i=1;i<=n;i++){//求和 

for(int j=1;j<=m;j++){

sum+=a[i][j];

printf("%d ",a[i][j]);//打印 (测评时可以注释掉) 

}

puts("\n");//换行 (测评时可以注释掉) 

}

printf("%d",sum);//输出和 

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-08-04
大概就是这个意思,具体细节自己修正吧
fun (int a[][])
{
int sum = 0;
for(int i=0; i < a1; i++)
for(int j=0;j<a2;j++)
sum += a[i][j];
}
望采纳!
相似回答