c语言从键盘输入一个M×M的矩阵,分别求该矩阵主对角线上的元素之和、以及副对角线上的元素之和。要求M的值从键盘输入,且M的值小于10。
时间: 2024-02-01 10:15:19 浏览: 64
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
int main()
{
int M, i, j, main_sum = 0, vice_sum = 0; // M表示矩阵的阶数,i和j用于循环,main_sum和vice_sum分别表示主对角线上和副对角线上的元素之和
printf("请输入矩阵的阶数M(M<10):");
scanf("%d", &M); // 从键盘读入矩阵的阶数
int matrix[M][M]; // 定义一个M×M的矩阵
printf("请按行优先顺序输入矩阵的元素:\n");
for (i = 0; i < M; i++)
{
for (j = 0; j < M; j++)
{
scanf("%d", &matrix[i][j]); // 从键盘读入矩阵的元素
if (i == j) // 如果当前元素在主对角线上
{
main_sum += matrix[i][j]; // 将该元素加入主对角线上的元素之和中
}
if (i + j == M - 1) // 如果当前元素在副对角线上
{
vice_sum += matrix[i][j]; // 将该元素加入副对角线上的元素之和中
}
}
}
printf("主对角线上的元素之和为%d\n", main_sum);
printf("副对角线上的元素之和为%d\n", vice_sum);
return 0;
}
```
该程序首先从键盘读入矩阵的阶数M,然后定义一个M×M的矩阵,并从键盘读入矩阵的元素。在读入每个元素时,如果该元素在主对角线上,则将该元素加入主对角线上的元素之和中;如果该元素在副对角线上,则将该元素加入副对角线上的元素之和中。最终输出主对角线和副对角线上的元素之和即可。
阅读全文