C++高手 这个编程题目怎么做啊~~急求答案

2024-12-21 22:20:59
推荐回答(1个)
回答1:

你的题目的点问题
如果你要求的是静态数组的对角线元素之和,那么在声明函数的时候,必须指明该二维数组的列数(也就是行数),第二个参数也就没有必要了
如果要求的是动态数组的对角线元素之和,就要用指针的指针了,第二个参数指明行(列),避免出界

在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 diagonal+=P[i][i];

return diagonal;
}

int getDiagonal(int **P,int M)//求动态数组对角线元素之和
{
int diagonal=0;
for(int i=0;i diagonal+=P[i][i];

return diagonal;
}

int main()
{
int staticArray[N][N]={{1,2,3},{4,5,6},{7,8,9}};
cout<<"静态数组:"< for(int i=0;i {
for(int j=0;j cout< cout< }
cout<<"对角线元素之和为:"<
cout< int M;
cout<<"输入动态数组的行数:";
cin>>M;
int **dynamicArray=new int*[M];
for(int k=0;k {
dynamicArray[k]=new int[M];
cout<<"输入第"< for(int l=0;l cin>>dynamicArray[k][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
*/