输入一个n*n的矩阵求除开对角线上元素外的所有元素之和c语言
时间: 2024-05-03 15:17:23 浏览: 10
以下是一个求除开对角线上元素外的所有元素之和的C语言程序:
```c
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入矩阵的大小n:");
scanf("%d", &n);
int a[n][n];
// 输入矩阵
printf("请输入矩阵的元素:\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++) {
if (i != j) {
sum += a[i][j];
}
}
}
printf("除对角线外的所有元素之和为:%d", sum);
return 0;
}
```
这个程序首先让用户输入矩阵的大小n,然后创建一个n*n的矩阵a,用两个嵌套的for循环分别输入矩阵的元素。接着再次使用两个嵌套的for循环遍历矩阵,如果当前元素不在对角线上,则将其加入到sum变量中。最后输出sum的值即可。
相关问题
输入一个n*n的矩阵求除开对角线上元素外的所有元素之和
可以使用两个嵌套循环遍历矩阵中的每一个元素,判断当前元素的行列坐标是否相等,如果不相等就将该元素的值累加到和变量中。代码如下:
```python
def sum_except_diagonal(matrix):
n = len(matrix)
total = 0
for i in range(n):
for j in range(n):
if i != j: # 排除对角线上的元素
total += matrix[i][j]
return total
```
其中,`matrix`为输入的矩阵,`n`为矩阵的边长,`total`为累加和变量。函数返回除对角线上元素外的所有元素之和。
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语句分别将主对角线和副对角线的元素值累加到对应的变量中。最后输出两条对角线元素之和即可。