c++编程题 大家看下~谢啦

来源:百度知道 编辑:UC知道 时间:2024/06/28 13:06:35
编写一个函数fun(),其功能是计算二维数组a[N][N] 的两条对角线元素之和,并调用该函数求下列方阵的两条对角线元素之和:
1 2 3
4 5 6
7 8 9
高手们! 问题是编写一个求和程序 而不是把
1 2 3
4 5 6
7 8 9 这个例子算出来!!

int fun(int a[][N],int N)
{
int i=0;
sum=0;
for(i=0;i<n;i++)
{
if(2*i!=(n-1))//去掉 中间重复的 数字 例如上面的5
sum+=a[i][i]+a[n-i-1][i];
else
sum+=a[i][i];
}
return sum;
}
应该如此吧

#include<iostream>
using namespace std;
#define N 3
int fun(int (*a)[N])
{
int sum=0;
for(int i=0;i<N;i++)
sum+=a[i][i];
for(int j=0;j<N;j++)
sum+=a[j][N-1-j];
if(N%2 != 0)sum -=a [N/2][N/2];
return sum;
}
int main()
{
int a[][N] = {
1,2,3,
4,5,6,
7,8,9
};
cout<<fun(a)<<endl;
return 0;
}

#include <iostream>
using namespace std;

#define NUM 3

int fun(int a[][NUM], int n = NUM)
{
int sum = 0, i, j;

for (i = 0; i < n; ++i)
{
sum += a[i][i];
}

for (i = 0, j = n - 1;i < n; ++i, --j)
{
sum