用c语言实现求 n 行 n 列矩阵中主对角线的元素值的和。 输入格式: 输入整数 n(1<n<=20)。再循环输入该二维数组元素。输出格式: 分行输出矩阵中各个元素的值,每个元素输出占用 8 列(%8d),右对齐。
时间: 2024-03-09 13:49:51 浏览: 59
好的,以下是用 C 语言实现的代码:
```c
#include <stdio.h>
#define N 25
int main()
{
int n;
int a[N][N];
int sum = 0; // 用于记录主对角线元素的和
scanf("%d", &n);
for (int i = 0; i < n; i ++ )
for (int j = 0; j < n; j ++ )
{
scanf("%d", &a[i][j]);
if (i == j) sum += a[i][j]; // 如果是主对角线元素,则加上其值
}
// 输出矩阵中的各个元素
for (int i = 0; i < n; i ++ )
{
for (int j = 0; j < n; j ++ )
printf("%8d", a[i][j]);
printf("\n");
}
printf("主对角线元素的和为:%d\n", sum);
return 0;
}
```
这个代码与上面的 C++ 代码差不多,只是用了 C 语言的输入输出方式。需要注意的是,输出时使用的是 `printf` 函数,而不是 `cout`。另外,在输出每个元素时,我们用了 `%8d` 来控制输出格式,使其右对齐并占 8 列。
相关问题
用c语言 题目描述 求 n 行 n 列矩阵中主对角线的元素值的和。 输入格式: 输入整数 n(1<n<=20)。再循环输入该二维数组元素。 输出格式: 分行输出矩阵中各个元素的值,每个元素输出占用 8 列(%8d),右对齐。 输入样例: 5 输出样例: 2 -1 -1 -1 -1 1 2 -1 -1 -1 1 1 2 -1 -1 1 1 1 2 -1 1 1 1 1 2 10
以下是实现该功能的 C 语言代码:
```c
#include <stdio.h>
int main() {
int n, sum = 0;
scanf("%d", &n);
int matrix[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
if (i == j) {
sum += matrix[i][j];
}
printf("%8d", matrix[i][j]);
}
printf("\n");
}
printf("The sum of the main diagonal is %d.\n", sum);
return 0;
}
```
代码思路:
1. 读入矩阵的行列数 n。
2. 定义一个 n×n 的二维数组 matrix 存储矩阵。
3. 循环读入每个矩阵元素,如果该元素在主对角线上,累加到求和变量 sum 中。
4. 使用 printf 函数以每个元素占 8 列的方式输出矩阵,每行末尾换行。
5. 输出主对角线元素的和。
运行结果示例:
输入:
```
5
2 -1 -1 -1 -1
1 2 -1 -1 -1
1 1 2 -1 1
1 1 1 2 -1
1 1 1 1 2
```
输出:
```
2 -1 -1 -1 -1
1 2 -1 -1 -1
1 1 2 -1 1
1 1 1 2 -1
1 1 1 1 2
The sum of the main diagonal is 10.
```
c语言 题目描述 求 n 行 n 列矩阵中主对角线的元素值的和。 输入格式: 输入整数 n(1<n<=20)。再循环输入该二维数组元素。 输出格式: 分行输出矩阵中各个元素的值,每个元素输出占用 8 列(%8d),右对齐。 输入样例: 5 输出样例: 2 -1 -1 -1 -1 1 2 -1 -1 -1 1 1 2 -1 -1 1 1 1 2 -1 1 1 1 1 2 10
好的,下面是C语言的实现代码:
```c
#include <stdio.h>
int main() {
int n, sum = 0;
scanf("%d", &n); // 输入矩阵的行数n
int a[n][n];
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
scanf("%d", &a[i][j]); // 输入矩阵元素
}
}
// 输出矩阵元素
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
printf("%8d", a[i][j]);
}
printf("\n");
}
// 求主对角线元素和
for (int i = 0; i < n; ++i) {
sum += a[i][i];
}
printf("主对角线元素的和为:%d\n", sum);
return 0;
}
```
输入样例:
```
5
2 -1 -1 -1 -1
1 2 -1 -1 -1
1 1 2 -1 -1
1 1 1 2 -1
1 1 1 1 2
```
输出样例:
```
2 -1 -1 -1 -1
1 2 -1 -1 -1
1 1 2 -1 -1
1 1 1 2 -1
1 1 1 1 2
主对角线元素的和为:10
```
阅读全文