编程,从键盘上输入一个3╳3的矩阵,求矩阵的主对角线和副对角线之和,要求定义和调用函数。(第二次课上后再做)输入输出示例:输入3╳3数组861259107115Sum=41.00
时间: 2024-03-11 14:46:44 浏览: 49
在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出矩阵第一行与第三行元素之和,并在fun()函数中输出
5星 · 资源好评率100%
好的,下面是实现代码:
```c
#include <stdio.h>
void diagonal_sum(int mat[][3], int n, float *sum) {
*sum = 0; // 初始化对角线和
for (int i = 0; i < n; i++) {
*sum += mat[i][i]; // 主对角线元素之和
*sum += mat[i][n - i - 1]; // 副对角线元素之和
}
}
int main() {
int mat[3][3];
printf("请输入3x3矩阵:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
scanf("%d", &mat[i][j]);
}
}
float sum;
diagonal_sum(mat, 3, &sum);
printf("Sum=%.2f\n", sum);
return 0;
}
```
函数 `diagonal_sum` 中,我们通过传入矩阵和矩阵的维度 `n`,使用指针 `sum` 来记录对角线元素之和。在函数中,我们遍历矩阵,根据主对角线和副对角线的位置,将对角线元素的值累加到 `sum` 中。在 `main` 函数中,我们通过调用 `diagonal_sum` 函数来获取对角线元素之和,然后输出即可。
需要注意的是,在 `diagonal_sum` 函数中,我们需要初始化变量 `sum` 的值,否则会产生未定义的行为。另外,在输出时,我们使用了格式化输出符号 `%.2f` 来保留两位小数。
阅读全文