c语言 10个数中最大数和次大数

来源:百度知道 编辑:UC知道 时间:2024/09/23 07:06:54
用C语言写出 10个数中最大数和次大数

#include <stdio.h>

void main()
{
int iBuf[10]={12,213,324,33,46,9,13,35,10,102};
int fmax,smax,i;
if(iBuf[0] >= iBuf[1])
{
fmax = iBuf[0];
smax = iBuf[1];
}
else
{
fmax = iBuf[1];
smax = iBuf[0];
}
for (i=2;i<10;i++)
{
if( iBuf[i] > fmax)
{
smax = fmax;
fmax = iBuf[i];
}
else
if(iBuf[i] > smax)
smax = iBuf[i];
}
printf("%d %d\n",fmax,smax);

}

先给你提供两种算法:
1.堆排序。大根堆可以求出一个数列中最大的几个数
2.鉴于你的要求只是简单的10个数中的最大和次大,就没这么麻烦了,直接用一个max,将数组遍历一遍,确定max就是最大的数,然后将这个数删除或者修改为最小值,再遍历一遍数组就可以确定次大数