《C语言入门100例》(第13例) 最值

一. 最值

  最值的概念很简单,无非就是多个数中的最大值或者最小值。我们通常是将已知最大(或最小)的某个数与其它数进行比较,然后不断更新最大值(或最小值),最后得到一组数据中的最值。
例如:

#include <stdio.h>

int main(){
    
    
	int nums[10] = {
    
    0, 2, 1, 4, 5, 6, 3, 9, 5, 6};
	int max = -1;
	int min = 100;
	for(int i = 0; i < 10; i++){
    
    
		if(max < nums[i]){
    
    
			max = nums[i];	
		}
		if(min > nums[i]){
    
    
			min = nums[i];
		}
	}
	printf("max = %d\nmin = %d", max, min);
	return 0;
}

二. 课后习题

第三大的数

题目链接:
414. 第三大的数
思路分析:
  我们可以定义三个变量,max1,max2,max3,分别表示前三个并且不断的更新迭代,首先将最大的值给max1,如果有比max1更大的,先将max2赋给max3,然后将max1赋给max2,最后将最大的赋给max1,不断更新。
代码如下:

int thirdMax(int* nums, int numsSize){
    
    
    long max[3];
    max[0] = LONG_MIN;
    max[1] = LONG_MIN;
    max[2] = LONG_MIN;

    for(int i = 0; i < numsSize; i++){
    
    
        if(max[0] < nums[i]){
    
    
            max[2] = max[1];
            max[1] = max[0];
            max[0] = nums[i];
        }
        else if(max[0] > nums[i] && max[1] < nums[i]){
    
    
            max[2] = max[1];
            max[1] = nums[i];
        }
        else if(max[1] > nums[i] && max[2] < nums[i]){
    
    
            max[2] = nums[i];
        }
    }
    if(max[2] == LONG_MIN)
        return max[0];
    return max[2]; 
}

猜你喜欢

转载自blog.csdn.net/qq_53060585/article/details/121318818