输入一系列整数,最后输出其中最大的两个数

写一个循环语句,输入一系列整数,最后输出其中最大的两个数

    int arr[20];
    int n; //n<20;
    scanf("%d", &n);
    for (int i=0;i<n ;i++)
    {
        scanf("%d", &arr[i]);
    }
    for(int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j < n - 1-i; j++)
        {
            if (arr[j] < arr[j+1])
            {
                int temp = arr[j+1];
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }
    printf("%d %d",arr[0],arr[1]);
 

代码如下:

#include <stdio.h>
int main()
{
    int max1,max2,x;
    int i = 0;
    while(scanf("%d",&x)!= EOF)
    {
        i++;
        if(i==1)
            max1 = x;
        else if (i==2)
        {
            if(max1 > x)
                max2 = x;
            else
            {
                max2 = max1;
                max1 = x;
            }
        }else
        {
            if(x >= max1)
            {
                max2 = max1;
                max1 = x;
            }else if(x > max2)
            {
                max2 = x;
            }
        }
    }
    printf("%d %d",max1,max2);
    return 0;
}