
随机生成由两位正整数构成的5×5矩阵,并求出
1 所有元素和sum
2对角线元素和sum1
3该矩阵的最大值Max以及最大值所在的行号h1、列号h2
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
const int ROWS = 5;
const int COLS = 5;
int matrix[ROWS][COLS];
int sum = 0;
int sum1 = 0;
int max_val = 0;
int max_row = 0;
int max_col = 0;
srand(time(0)); // 设置随机数种子
// 随机生成由两位正整数构成的5×5矩阵
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
matrix[i][j] = rand() % 90 + 10; // 生成10到99之间的随机数
}
}
// 输出矩阵
cout << "随机生成的矩阵为:" << endl;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
// 计算所有元素的和
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
sum += matrix[i][j];
}
}
// 计算对角线元素的和
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (i == j || i+j == ROWS-1) { // 判断是否为对角线元素
sum1 += matrix[i][j];
}
}
}
// 找出最大值及其所在的行号和列号
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (matrix[i][j] > max_val) {
max_val = matrix[i][j];
max_row = i;
max_col = j;
}
}
}
// 输出结果
cout << "所有元素的和为:" << sum << endl;
cout << "对角线元素的和为:" << sum1 << endl;
cout << "最大值为:" << max_val << ",所在的行号为:" << max_row+1 << ",所在的列号为:" << max_col+1 << endl;
return 0;
}