你创建了两个对象,一个对象没调用min_value(),另一个对象没调用max_value(),所以第一个只有最大值,min未进行赋值为初始化值
改成只使用一个对象,调用最大值函数和最小值函数
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函数分别找出数组中的最大值和最小值,并输出结果。
头指针:指向链表的第一个结点的指针。
首元结点:链表存放数据的第一个结点。
头结点:链表的第一个结点,但是其数据域不含有数据,指针域内指针指向首元结点,头节点存在方便操作。