Produza o segundo maior número (usando uma matriz)

O primeiro método: (classificação por bolha)
parte central:
for (i = 0; i <= 14; i ++) // array a [15] tem quinze números de zero a quatorze
{
for (j = 0 ; J <= 14-i; j ++) // O ciclo pode descarregar um valor máximo uma vez, então ele precisa ser executado 14 vezes, e cada ciclo tem uma linha de número até o máximo, então cada vez que é reduzido em um, é 14-i.
{
If (a [j]> = a [j + 1])
{t = a [j + 1];
a [j + 1] = a [j];
a [j] = t;
}
}
} Após a
classificação, A saída de a [1] é o maior (observe o [caso igual])
código:
#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]);

}
O segundo método (encontre o segundo maior número diretamente)
define max1 e max2, então encontre max1 e max2, e produza o
código de max2 :
#include <stdio.h>
int main ()
{
int a [15], max = 0, i, max2 = 0;
para (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);

}

Acho que você gosta

Origin blog.51cto.com/14951163/2551334
Recomendado
Clasificación