c语言程序 1、方阵求出主对角线上元素之和;2、辅对角线上元素之积;3方阵中最大的元素

 我来答
memberwin
2011-06-16 · TA获得超过3905个赞
知道大有可为答主
回答量:1000
采纳率:100%
帮助的人:613万
展开全部
直接写在main函数里了,可以将关键代码提取出来放到另外函数中,以数组名和方阵大小n作为参数。
另外,将辅对角线理解为从右上到左下的对角线了,不知对否?

#include <stdio.h>
int main(void)
{
int n = 3;
int a[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};

int i = 0;
int j = 0;
int mainAdd = 0;
int subMul = 1;
int maxItem = a[0][0];

for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
{
if(i == j)
mainAdd += a[i][j];
if(i+j == n-1)
subMul *= a[i][j];

if(maxItem < a[i][j])
maxItem = a[i][j];
}

printf("主对角线元素之和为 %d, 辅对角线元素之积为 %d, 最大元素为 %d\n", mainAdd, subMul, maxItem);

return 0;
}
追问
运行时没错。。我本不懂,不知道
追答
运行肯定不会有错,但副对角线是不是我说的那个我原来不确定,后来查了下,应该就是从右上到左下的对角线
tulxgmptz
2011-06-17 · TA获得超过385个赞
知道答主
回答量:319
采纳率:0%
帮助的人:0
展开全部
记得加分啊

void add(int arr[][4])
{int i,j,sum;
sum=0;
for(i=0,j=3-i;i<=3;i++,j--)
sum+=arr[i][j];
printf("\nSum of main diagonal is %d\n",sum);
}

void mul(int arr[][4])
{int i,j,sum;
sum=1;
for(i=0,j=i;i<=3;i++,j++)
sum*=arr[i][j];
printf("\nMultiplication of sub diagonal is %d\n",sum);
}

void max(int arr[][4])
{int i,j,sum;
sum=arr[0][0];
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
sum=arr[i][j]>sum?arr[i][j]:sum;
printf("\nThe max number of the array is %d\n",sum);
}

main()
,,,};
int i,j;
int (*p)[4];
p=a;
printf("The 4X4 array is:\n");
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)
printf("\t%2d",*(*(p+i)+j));
printf("\n");
}
add(a);
mul(a);
max(a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式