题目
本题是谭浩强《c语言程序设计》第六章第三题
题目:求一个3*3的整形矩阵对角线元素之和。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
1.首先我们需要按照题目要求来创建一个二维数组,三行三列。
2.把数组各元素标出来,然后分析两个对角线的规律。
a 0 0 a 0 1 a 0 2
a 1 0 a 1 1 a 1 2
a 2 0 a 2 1 a 2 2
3.经过分析,我们发现从左上到右下的对角线:
a 0 0 a 1 1 a 2 2
也就是行和列相等,采用for循环,从0-2
4.从右上到左下的对角线:
a 0 2 a 1 1 a 2 0
循环,i从0-2,j从2-0;
5.然后把这两个对角线的和加起来输出即可。
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
int main() {
int i, j;
int sum1 = 0, sum2 = 0;
int a[3][3] = { 0 };
printf("请输入一个三行三列的整形矩阵:\n");
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
scanf("%d", &a[i][j]);
printf("您输入的矩阵为:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
printf("%d", a[i][j]);
printf("\n");
}
//计算从左上到右下的对角线和
for (i = 0; i < 3; i++)
sum1 += a[i][i];
//计算从右上到左下的对角线和
for (i = 0, j = 2; i < 3,j>=0; i++,j--)
sum2 += a[i][j];
printf("%d\n", sum1);
printf("%d\n", sum2);
printf("%d\n", sum1 + sum2);
return 0;
}
三、执行结果
输入:1 2 3 4 5 6 7 8 9
输出:
您输入的矩阵为:
123
456
789
15(sum1) 15(sum2) 30(sum1+sum2)