2番目に大きい数値を出力します(配列を使用)

最初の方法:(バブルソート)
コア部分:
for(i = 0; i <= 14; i ++)// array a [15]には、0から14までの15個の数値があります
{
for(j = 0 ; J <= 14-i; j ++)//サイクルは最大値を1回放電できるため、14回サイクルする必要があり、各サイクルには最大数の行があるため、1つ減らすたびに14-iになります。
{
if(a [j]> = a [j + 1])
{t = a [j + 1];
a [j + 1] = a [j];
a [j] = t;
}
}
}
並べ替え、 a [1]の出力は最大です([等しい場合]に注意してください)

#include <stdio.h>
int main()
{
int a [15];
int i、j、t;
for(i = 0; i <15; i ++)
scanf( "%d"、&a [i]);
for(i = 0; i <15; i ++)
{
for(j = 0; j <14-i; j ++)
{

    if(a[j]<a[j+1])
    {

        t=a[j];
        a[j]=a[j+1];
        a[j+1]=t;
    }
   }
}
for(i=0; i<15; i++)
{
    if(a[i]!=a[0])
        break;
}
printf("%d",a[i]);

}
第二の方法は、(直接、最大秒数を見つける。)
、MAX1およびMAX2を定義し、次いでMAX1およびMAX2を見つけ、出力MAX2の
コード:
の#include <stdio.hの>
int型のmain()
{
int型A [15]は、MAX = 0、i、max2 = 0;
for(i = 0; i <= 14; i ++)
{
scanf( "%d"、&a [i]);

        if(max<a[i])
            max=a[i];
}

     for (i=0;i<=14;i++)
      {

        if(max2<a[i]&&a[i]<max)
            max2=a[i];
    }
printf("%d",max2);

}

おすすめ

転載: blog.51cto.com/14951163/2551334