c++程序输入一个正整数n(n<=6),再输入n×n的矩阵,求其主对角线元素之和及副对角线元素之和并输出。
时间: 2024-03-24 18:41:33 浏览: 18
好的,这是一个简单的C++程序。以下是代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n, sum1 = 0, sum2 = 0;
cin >> n;
int matrix[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> matrix[i][j];
if (i == j) {
sum1 += matrix[i][j];
}
if (i + j == n - 1) {
sum2 += matrix[i][j];
}
}
}
cout << "主对角线元素之和为:" << sum1 << endl;
cout << "副对角线元素之和为:" << sum2 << endl;
return 0;
}
```
程序的思路是定义一个n×n的矩阵,然后使用两个循环来输入矩阵的元素,并在输入的同时,统计主对角线和副对角线的元素之和。最后输出这两个和。
相关问题
C++读入一个正整数,再读入n阶方阵,计算除该矩阵副对角线,最后一列,最后一行以外的所有元素之和
以下是一个简单的 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]);
}
}
// 计算和
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i != j && i + j != n - 1 && j != n - 1 && i != n - 1) {
sum += matrix[i][j];
}
}
}
printf("%d\n", sum);
return 0;
}
```
代码的思路很简单,首先读入矩阵的阶数和元素,然后依次遍历矩阵中的每个元素,如果该元素不在副对角线、最后一列或最后一行上,则将其累加到 sum 变量中。最后输出 sum 的值即可。
请写一段c++程序,要求读入1个正整数n(1≤n≤6),再读入n阶方阵,计算该矩阵除副对角线、最后一列和最后一行以外的所以元素之和
好的,以下是符合要求的 C 代码:
```
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 读入矩阵阶数
int matrix[n][n];
int sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]); // 读入矩阵元素
if (i != j && i + j != n - 1 && j != n - 1 && i != n - 1) {
sum += matrix[i][j]; // 不在副对角线、最后一列和最后一行上的元素相加
}
}
}
printf("%d", sum); // 输出结果
return 0;
}
```
该程序先读入矩阵阶数,然后再根据阶数定义一个矩阵数组,并循环读入矩阵元素。在循环过程中,判断当前元素是否在副对角线、最后一列和最后一行上,如果不在则累加到 sum 变量中。最后输出 sum 的值即可。