为什么后面结果会出现-858993460

img


综合采用类、对象、类成员函数分别找出一个二维整型数组中的元素的最大值和最小值。
要求:数组要求从键盘输入
最大值和最小值的查找分别采用类成员函数实现

你创建了两个对象,一个对象没调用min_value(),另一个对象没调用max_value(),所以第一个只有最大值,min未进行赋值为初始化值

img

改成只使用一个对象,调用最大值函数和最小值函数

    Array arr;
    arr.set_value();
    arr.max_value();
    arr.min_value();
    arr.show_value();

逻辑有问题呗,又因为 min没有初始化,所以就出现了这个数字

参考ChatGPT:

#include <iostream>
using namespace std;

class Array {
private:
    int **arr;
    int rows, cols;
public:
    Array(int r, int c) {
        rows = r;
        cols = c;
        arr = new int*[rows];
        for (int i = 0; i < rows; i++) {
            arr[i] = new int[cols];
        }
    }
    void input() {
        cout << "请输入" << rows << "行" << cols << "列的二维整型数组:" << endl;
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                cin >> arr[i][j];
            }
        }
    }
    int max() {
        int max = arr[0][0];
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                if (arr[i][j] > max) {
                    max = arr[i][j];
                }
            }
        }
        return max;
    }
    int min() {
        int min = arr[0][0];
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                if (arr[i][j] < min) {
                    min = arr[i][j];
                }
            }
        }
        return min;
    }
};

int main() {
    int rows, cols;
    cout << "请输入二维数组的行数和列数:" << endl;
    cin >> rows >> cols;
    Array arr(rows, cols);
    arr.input();
    cout << "最大值为:" << arr.max() << endl;
    cout << "最小值为:" << arr.min() << endl;
    return 0;
}

程序中定义了一个名为Array的类,其中包含了一个二维整型数组arr、数组的行数rows和列数cols。类中定义了一个构造函数,用于动态分配二维数组的内存空间;一个input函数,用于从键盘输入二维数组的元素;一个max函数,用于找出数组中的最大值;一个min函数,用于找出数组中的最小值。

在main函数中,首先从键盘输入二维数组的行数和列数,然后创建一个Array对象arr,并调用input函数从键盘输入二维数组的元素。最后,调用max函数和min函数分别找出数组中的最大值和最小值,并输出结果。

头指针:指向链表的第一个结点的指针。

首元结点:链表存放数据的第一个结点。

头结点:链表的第一个结点,但是其数据域不含有数据,指针域内指针指向首元结点,头节点存在方便操作。