华为机试:从一个数组中选取不同的数组成一个最大的三位数
1 int findMax(int *arr, int len) 2 { 3 int i;// 工作指针 4 int fstMax, secMax, thdMax;//存储前三个大的数 5 6 fstMax = arr[0]; 7 secMax = 0; 8 thdMax = -1; 9 10 for(i = 1; i < len; i++) 11 { 12 if(arr[i] > fstMax) 13 { 14 thdMax = secMax; 15 secMax = fstMax; 16 fstMax = arr[i]; 17 } 18 else//arr[i] <= fstMax 19 { 20 if(arr[i] > secMax) 21 { 22 if(arr[i] != fstMax) 23 { 24 thdMax = secMax; 25 sexMax = arr[i]; 26 } 27 }else//arr[i] <= secMax 28 { 29 if(arr[i] != secMax) 30 thdMax = arr[i]; 31 } 32 } 33 } 34 return 100*fstMax + 10*secMax + thdMax; 35 }