分类: 深大特供

请注意,本分类下的文章仅提供一种解决问题的思路,来访者不应该抄袭这里的包括但不限于代码的内容。绝大多数内容是过去那段时间的成长记录,我们不为此分类下内容的正确性、可用性或者是否最佳实践等问题负责。除非有重大问题存在,否则我们也不会更新这里的文章。

  • 求矩阵的最大和最小值

    时间限制: 1 Sec 内存限制: 128 MB

    题目描述

    定义一个函数用一级指针接收一个任意行任意列的矩阵并返回该矩阵元素的最大和最小值.

    输入

    矩阵的行数 矩阵的列数
    矩阵各元素的值

    输出

    最大值
    最小值

    样例输入

    3 3
    1 2 3
    4 5 6
    7 8 9
    

    样例输出

    9
    1
    

    提示

    解决方案

    #include <iostream>
    
    void findMinAndMaxValues(int *ptr, int row, int col);
    
    int main() {
        int row, col;
        std::cin >> row >> col;
        int mat[row][col];
        for (int ir = 0; ir < row; ++ir) {
            for (int ic = 0; ic < col; ++ic) {
                std::cin >> mat[ir][ic];
            }
        }
        findMinAndMaxValues(&mat[0][0], row, col);
    
        return 0;
    }
    
    void findMinAndMaxValues(int *ptr, int row, int col) {
        int min = *ptr, max = *ptr;
        for (int ir = 0; ir < row; ++ir) {
            for (int ic = 0; ic < col; ++ic) {
                if (ptr[ir * col + ic] < min) {
                    min = ptr[ir * col + ic];
                }
                if (ptr[ir * col + ic] > max) {
                    max = ptr[ir * col + ic];
                }
            }
        }
        std::cout << max << std::endl << min << std::endl;
    }