#include<iostream> using namespace std; void max_num(int a[], int lo, int hi, int & x1, int & x2) { if (a[x1 = lo] < a[x2 = lo + 1]) swap(x1, x2); for (int i = lo + 2; i <= hi; i++) { if (a[x2] < a[i]) { if (a[x1] < a[x2 = i]) swap(x1, x2); } } cout << x1 << " " << x2; } int main() { int A[10] = { 2,4,7,3,54,2,6,9,5,10 }; int x1, x2; max_num(A, 0, 9, x1, x2); system("pause"); return 0; }
以往的方法是一遍循环,然后找到最大,然后在二遍循环找到次大。
但是这种方法提供了一种新的思路,首先定义好最大和次大,一边循环比较就可以了 厉害