如何求几个数中的最大数和第二大的数

如何用C语言求几个数中的最大数和第二大的数呢?完全没有思路啊。要用上while和if

这么写:

#include <stdio.h>
int main()
{
    int t,max1=0,max2=0,flag=0;
    while(1){
    scanf("%d",&t);
    if(t==0) break;
    if(flag==0){
        max1=max2=t;
        flag=1;
    }else if(flag==1){
        if(t>max1)
        max1=t;
        else
        max2=t;
        flag=2;
    }else{
        if(t>max1){
            max2=max1;
            max1=t;
        }else if(t>max2)
            max2=t;
    }
    }
    printf("max1 = %d,max2 = %d",max1,max2);

    return 0;
}

img

对数组进行由大到小的进行排序,然后获取第一个,第二个元素。