C编程利用二维数组求方阵主次对角线之和; 急,求C语言帝帮忙

 我来答
丛龙强
2010-10-31 · TA获得超过173个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:172万
展开全部
#include <stdio.h>
#define n 3

int main(void)
{
int i, j, sum;
int a[n][n];

printf("Please input a array\n");
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%d", &a[i][j]);
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
printf("%3d", a[i][j]);
}
printf("\n");
}
sum = 0;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if((i==j) || (i+j==n-1))
{
sum += a[i][j];
}
}
}
printf("主对角线和次对角线之和是:%d\n", sum);
return 0;
}
如果不是的话你可以给我留言,要是对的话记得给我加分, 呵呵
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qqgbq1
2018-05-07
知道答主
回答量:1
采纳率:0%
帮助的人:856
展开全部
我是自己推出公式来的..分两种情况,奇数数组和偶数数组,奇数数组主次对角线之和要减去中间的一个多余的元素,偶数无多余的元素,主次对角线元素之和等于一排元素的个数*两个对角之和除2,可以写成:
if (b%2!=0)
c=b*( a[0, b-1]+ a[ b-1,0])/2+ b*(a[0,0]+ a[ b-1, b-1])/2-( a[0,0]+ a[ b-1, b-1])/2; ( b为你定义的数组的元素个数,c为存放主次对角线之和的容器,a为多维数组;当二维数组元素的数量为奇数时,主次对角线之和相加再减去中间多余的一个元素)
else
c=b*( a[0, b-1]+ a[ b-1,0])/2+ b*(a[0,0]+ a[ b-1, b-1])/2; (当元素的数量为偶数,中间无重叠的元素,直接相加即可)
printf.......
我是学c#的,如果你没有看懂我的想法的话你就直接把上面代码带到你原来的代码中就行了 不懂问我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式