返回数组最大值和最小值

1、使用algorithm中的min_element/max_element 

#include<iostream>
#include<algorithm>
using namespace std;

int main() {
	int n;
	while (cin >> n) {
		int* p = new int[n];
		for (int i = 0; i < n; i++) {
			cin >> p[i];
		}
		cout << *(min_element(p, p + n)) << " " << *(max_element(p, p + n)) << endl;
	}

}

2、可以使用limits文件中的numeric_limits<>设置初始最大小值,然后循环数组获取最大小值

#include<iostream>
#include<algorithm>//提供min_element和max_element
#include<limits>//提供numerical_limits<>
using namespace std;
int get_min(int a, int b) {
	return a < b ? a : b;
}
int get_max(int a, int b) {
	return a > b ? a : b;
}
int main()
{
	int n;
	while (cin >> n) {
		int* p = new int[n];
		for (int i = 0; i < n; i++) {
			cin >> p[i];
		}
		int min = numeric_limits<int>::max();
		int max = numeric_limits<int>::min();
		for (int i = 0; i < n; i++) {
			min = get_min(min, p[i]);
			max = get_max(max, p[i]);
		}
		cout << min << " " << max << endl;
	}
}

也可以默认默认最大值和最小值为数组首元素,逐个向后比较

int get_max(int a, int b) {
	return a > b ? a : b;
}
int find_max(int arr[],int begin, int end) {
	if (begin <= end) {

		int max = arr[begin];
		for (int i = begin; i <= end; i++) {
			max = get_max(max, arr[i]);
		}
		return max;
	}
	else {
		int max = arr[end];
		for (int i = end; i <= begin; i++) {
			max = get_max(max, arr[i]);
		}
		return max;
	}
}

猜你喜欢

转载自blog.csdn.net/Li_haiyu/article/details/88529567