// =================================================== // 求数组A中前length个元素的最大值和最小值,存放在max和min中 // length: 要计算最大值最小值的长度 length不能为0 // =================================================== void MaxMin(int *max, int *min, int A[],int length) { int max_temp, min_temp; int i; if(length % 2) // 奇数个 { max_temp = min_temp = A[0]; // 都设置成第0个元素 i = 1; } else // 偶数个 { if(A[0] > A[1]) { max_temp = A[0]; min_temp = A[1]; i = 2; } else { max_temp = A[1]; min_temp = A[0]; i = 2; } } for(; i < length; i+= 2) { if(A[i] > A[i+1]) { if(max_temp < A[i]) max_temp = A[i]; if(min_temp > A[i+1]) min_temp = A[i+1]; } else { if(max_temp < A[i+1]) max_temp = A[i+1]; if(min_temp > A[i]) min_temp = A[i]; } } *max = max_temp; *min = min_temp; }