问题描述
- c++函数调用 二维数组对角线求和
-
#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;
}
解决方案三:
- 1.你要问什么?
- 2.sum_2diagonal可以简化
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的数组指针的参数不需要指定数组的大小。
时间: 2024-10-26 18:23:00