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);
}