编写一个程序,要求用户(按任意次序)输入1到16的所有整数,然后用4x4矩阵的形式将它们显示出来,再计算出每行、每列和每条对角线上的和:使用C++语言
时间: 2024-10-15 16:21:37 浏览: 13
为了编写这个程序,你可以使用C++中的二维数组来存储用户输入的整数,并按照4x4的矩阵结构排列。接下来,我们将创建一个函数来获取用户的输入,填充矩阵,以及计算行、列和对角线的和。以下是简化的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义矩阵
const int ROWS = 4;
const int COLS = 4;
void inputMatrix(vector<vector<int>>& matrix) {
for (int i = 0; i < ROWS; i++) {
vector<int> row(COLS);
cout << "请输入第" << (i + 1) << "行的数字,按顺序输入:" << endl;
for (int j = 0; j < COLS; j++) {
cin >> row[j];
matrix[i][j] = row[j]; // 存储用户输入
}
}
}
void printMatrix(const vector<vector<int>>& matrix) {
for (const auto& row : matrix) {
for (int num : row) {
cout << num << " ";
}
cout << endl;
}
}
int calculateSum(const vector<vector<int>>& matrix, bool isDiagonal) {
int sum = 0;
if (isDiagonal) {
int start = isUpperDiagonal ? 0 : ROWS - 1;
for (int i = start; i >= 0 && i < ROWS; i--) {
sum += matrix[i][i];
}
for (int i = start + 1; i < ROWS; i++) {
sum += matrix[i][i];
}
} else {
for (int i = 0; i < COLS; i++) {
sum += matrix[i][i];
}
}
return sum;
}
int main() {
vector<vector<int>> matrix(ROWS, vector<int>(COLS, 0));
inputMatrix(matrix);
cout << "矩阵为:" << endl;
printMatrix(matrix);
int rowSums[ROWS], colSums[COLS];
memset(rowSums, 0, sizeof(rowSums));
memset(colSums, 0, sizeof(colSums));
// 计算行和列和
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
rowSums[i]
阅读全文