写一个C语言程序,输入一个 n*n 二维数组(1<n<10),计算主对角线元素和,副对角线元素和,并输出。n值,n*n 的二维数组元素的值,均为int类型。主副对角线元素和
时间: 2023-06-02 19:08:05 浏览: 114
是可以回答的,下面是代码示例:
```c
#include <stdio.h>
int main() {
int n, matrix[10][10], i, j, sum1 = 0, sum2 = 0;
printf("请输入 n 和 n*n 的二维矩阵:\n");
scanf("%d", &n);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
if (i == j) sum1 += matrix[i][j]; // 计算主对角线元素和
if (i + j == n - 1) sum2 += matrix[i][j]; // 计算副对角线元素和
}
}
printf("主对角线元素和为:%d\n", sum1);
printf("副对角线元素和为:%d\n", sum2);
return 0;
}
```
这个程序可以计算一个 n*n 的二维数组的主对角线元素和和副对角线元素和。输入格式为先输入 n,再依次输入 n*n 的矩阵元素值。输出结果为主对角线元素和和副对角线元素和。
相关问题
编写程序,输入一个n*n阶二维数组(整型数组),计算两条对角线元素之积并输出。c语言
好的,可以参考以下代码实现:
```c
#include <stdio.h>
#define N 3 // 方阵的维数
int main()
{
int mat[N][N]; // 定义一个n*n阶二维数组
int i, j, product1 = 1, product2 = 1;
// 输入二维数组
printf("请输入%d阶方阵的元素:\n", N);
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
scanf("%d", &mat[i][j]);
}
}
// 求两条对角线元素之积
for (i = 0; i < N; i++) {
product1 *= mat[i][i]; // 求主对角线元素之积
product2 *= mat[i][N-i-1]; // 求次对角线元素之积
}
// 输出结果
printf("主对角线元素之积:%d\n", product1);
printf("次对角线元素之积:%d\n", product2);
return 0;
}
```
输出结果为:
```
请输入3阶方阵的元素:
1 2 3
4 5 6
7 8 9
主对角线元素之积:45
次对角线元素之积:28
```
注:代码中的 `N` 定义了方阵的维数,可以根据需要进行修改。
c语言(二维数组)求一个N*N矩阵两条对角线元素之和
可以使用一个循环来遍历矩阵,并利用两个变量分别累加主对角线和副对角线的元素值。代码如下:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入矩阵的大小(n*n):");
scanf("%d", &n);
int matrix[n][n];
int sum1 = 0, sum2 = 0; // 分别累加主对角线和副对角线的元素值
// 输入矩阵元素
printf("请输入矩阵元素:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
if (i == j) { // 主对角线
sum1 += matrix[i][j];
}
if (i + j == n - 1) { // 副对角线
sum2 += matrix[i][j];
}
}
}
// 输出两条对角线元素之和
printf("主对角线元素之和为:%d\n", sum1);
printf("副对角线元素之和为:%d\n", sum2);
return 0;
}
```
其中,`sum1`和`sum2`分别用于累加主对角线和副对角线的元素值。在输入矩阵元素时,利用两个if语句分别将主对角线和副对角线的元素值累加到对应的变量中。最后输出两条对角线元素之和即可。