你的题目的点问题
如果你要求的是静态数组的对角线元素之和,那么在声明函数的时候,必须指明该二维数组的列数(也就是行数),第二个参数也就没有必要了
如果要求的是动态数组的对角线元素之和,就要用指针的指针了,第二个参数指明行(列),避免出界
在Windows XP + VC++6.0下正常运行
#include
using namespace std;
const int N=3;//静态数组的行数
int getDiagonal(int P[][N])//求静态数组对角线元素之和
{
int diagonal=0;
for(int i=0;i
return diagonal;
}
int getDiagonal(int **P,int M)//求动态数组对角线元素之和
{
int diagonal=0;
for(int i=0;i
return diagonal;
}
int main()
{
int staticArray[N][N]={{1,2,3},{4,5,6},{7,8,9}};
cout<<"静态数组:"<
for(int j=0;j
cout<<"对角线元素之和为:"<
cout<
cout<<"输入动态数组的行数:";
cin>>M;
int **dynamicArray=new int*[M];
for(int k=0;k
dynamicArray[k]=new int[M];
cout<<"输入第"< for(int l=0;l
}
cout<<"对角线元素之和为:"<
return 0;
}
/*运行结果:
静态数组:
1 2 3
4 5 6
7 8 9
对角线元素之和为:15
输入动态数组的行数:4
输入第4行各元素:1 2 3 4
输入第4行各元素:5 6 7 8
输入第4行各元素:9 10 11 12
输入第4行各元素:13 14 15 16
对角线元素之和为:34
*/