タイトルが示すように、配列内で 2 番目に大きい数を見つける必要があり、その配列内のすべての数が等しい場合は、-∞ と書く必要があります。私がこれを書いたのですが、もう少し最適化できるかどうか誰か確認してもらえますか? この配列は単なる例です。x[1...n] である必要がありますが、疑似コードに書き直す必要があるため、それを例として取り上げました
#include <stdio.h>
int main()
{
    int x[7]={90,90,78,41,21,27,35};
    int i, max, secmax, y;
    secmax=0;
    max=x[0];
    for(i=1;i<=7;i++)
        {
        if (x[i]>max)
            {
            secmax=max;
            max=x[i];
            }
        else if (x[i]>secmax&&x[i]<max)
                {
            secmax=x[i];
            }
        }
    for(i=0;i<7;i++)
        if(x[i]==x[i+1])
            y++;
    if (y==6)
        printf("sec max to minus nieskonczonosc \n");
    else 
        printf("max to %d a secmax to %d\n",max,secmax);
    return 0;
}