c++ 随机生成由两位正整数构成的5×5矩阵

img


随机生成由两位正整数构成的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; // 生成1099之间的随机数
        }
    }

    // 输出矩阵
    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;
}