//从键盘上输入一个3行3列矩阵各个元素的值,分别输出其主对角线元素和反向对角线元素之和。
#include<stdio.h>
void main()
{
int arr[3][3];
int i = 0, j = 0, Sum_1 = 0, Sum_2 = 0;
printf("请输入9个整数:");
for (i = 0; i < 3; i++)//输入数组内容
{
for (j = 0; j < 3; j++)
scanf("%d", &arr[i][j]);
}
for (i = 0; i < 3; i++)//三行三列输出数组
{
for (j = 0; j < 3; j++)
{
printf("%d ", arr[i][j]);
if (j == 2)
printf("\n");
}
}
for (i = 0; i < 3; i++) // 计算主对角线元素之和
{
Sum_1 += arr[i][i];
}
for (i = 0; i < 3; i++) // 计算反向对角线元素之和
{
Sum_2 += arr[i][2 - i];
}
printf("主对角线元素之和为%d\n", Sum_1);
printf("反向对角线元素之和为%d\n", Sum_2);
}
用户可以依次输入矩阵中的元素值,程序将计算并输出主对角线元素之和和反向对角线元素之和。在输入和输出矩阵元素时,按照行优先顺序输入和输出。
在编写上述代码时,有几个易错点需要特别注意:
1. 数组索引:在处理数组元素时,注意使用正确的索引。C语言中的数组索引是从0开始的,因此在循环或访问数组元素时,要特别注意索引的范围和计算。
2. 输入错误处理:在从键盘输入矩阵元素时,应该考虑输入错误的情况。用户可能会输入无效数值(如非整数),导致输入错误。因此,要确保输入的数值是合法的,并处理不合法输入的情况。
3. 计算主对角线和反向对角线元素之和:在计算主对角线元素和反向对角线元素之和时,要确保使用正确的索引。主对角线的元素位于行索引和列索引相等的位置,而反向对角线的元素则位于行索引和列索引之和为2的位置。
4. 输出格式:在输出主对角线元素和反向对角线元素之和时,要注意使用正确的格式。确保输出的结果易于阅读和理解,可以按照题目要求进行格式化输出。
5. 边界情况:虽然题目给定了矩阵的大小为3行3列,但在实际编写代码时,要考虑处理一般情况和可能的边界情况。例如,如果矩阵大小不是3行3列,或者输入不符合要求,应该如何处理这些情况,以提高代码的鲁棒性。
在编写代码时,可以使用合适的控制结构(如条件语句、循环等)和错误处理机制,以避免上述易错点,并确保代码的正确性和鲁棒性。同时,进行充分的测试和边界条件检查,确保代码在各种情况下都能正常工作。