#include
using namespace std;
int main()
{
double sum_2diagonal(double* arry_2d,unsigned int m,unsigned int n);
int i,j;
double summ;
unsigned int x,y;
double arry[100][100];
cin>>x>>y;
for(i=0;i for(j=0;j {
cin>>arry[i][j];
}
summ=sum_2diagonal(arry,x,y);
cout<<summ;
return 0;
}
double sum_2diagonal(double (*arry_2d)[100][100] ,unsigned int m,unsigned int n)
{
int i,j;
double sum=0,t=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(i=j)
{ sum=sum+((*arry_2d)[i][j]);
}
}
return sum;
}
问题是什么呢?还是有什么错误?
for(i=0;i for(j=0;j { //这是什么鬼
cin>>arry[i][j];
}
summ=sum_2diagonal(arry,x,y);
cout<<summ;
return 0;
}
double sum_2diagonal(double arry_2d[][100], unsigned int m, unsigned int n)
{
int n0 = (m>n) ? n : m;
int i;
double sum = 0, t = 0;
for (i = 0; i < n0; i++)
sum += (arry_2d[i][i]);
return sum;
}
虽然不知道你要表达什么,但是我感觉你计算对角线的和的时候指针用错了
sum_2diagonal这个函数参数传错了,直接double *arry_2d即可。
中间那个for循环没复制全,sum_2diagonal的数组指针的参数不需要指定数组的大小。