用C语言求一个4*4 数组中主对角线的和以及副对角线的积,数组从键盘输入
时间: 2024-12-29 07:33:15 浏览: 8
在C语言中,你可以通过以下步骤来求解这个问题:
1. 首先,你需要创建一个4x4的二维数组,并通过`scanf`函数从用户那里获取输入。
2. 定义两个变量,一个用于存储主对角线的元素之和(`main_diagonal_sum`),另一个用于存储副对角线的元素乘积(`minor_diagonal_product`)。初始值可以设为0。
3. 使用嵌套循环遍历数组。对于主对角线,检查当前元素是否位于数组的正确位置(即行索引等于列索引)。如果是,则累加到总和。对于副对角线,检查当前元素的行索引加列索引是否等于3(因为是从左上到右下的斜向对角线)。如果是,则将这两个数相乘并更新乘积。
4. 循环结束后,打印出主对角线的和和副对角线的积。
下面是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
int arr[4][4];
int i, j;
int main_diagonal_sum = 0;
int minor_diagonal_product = 1; // 初始化为1,因为副对角线元素开始时都是非零的
// 输入4x4矩阵
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
scanf("%d", &arr[i][j]);
if (i == j) { // 主对角线
main_diagonal_sum += arr[i][j];
} else if (i + j == 3) { // 副对角线
minor_diagonal_product *= arr[i][j];
}
}
}
printf("主对角线的和为: %d\n", main_diagonal_sum);
printf("副对角线的积为: %d\n", minor_diagonal_product);
return 0;
}
```
阅读全文