/*输出第二大值,使用数组排序法,从大到小排序后输出a[1]*/
#include <stdio.h>
void main()
{
int a[10],i,j,x;
printf("please input 10 nembers:/n");
for(i=0;i<10;i++) //以scanf循环输入数组中10个数
{
scanf("%d",&a[i]); //将输入数据存入到数组a[i]
}
for(i=0;i<9;i++) //a[j]里存放的是大值,a[i]是存放的小值,数组中a[i]比a[j]要小一
{
for(j=i+1;j<10;j++)//因为数组中j=i+1,所以a[i]比a[j]要小一,因为j=i+1所以赋值到小于10,也刚好是10个数!
{
if(a[i]>a[j]) //如果a[i]比a[j]要小,则将大放前面小的放后面,大小排序后输出第二大值a[1]
{
x=a[i]; //将存放a[i]的小值赋给到x,则a[i]就空了
a[i]=a[j];//再将a[j]存放的大值赋给a[i],则a[j]就空了
a[j]=x; //将存放小值的x赋给a[j],则x就空了
} //将大小重新排序,从大到小排序
}
}
printf("/n第二大值为:%d/n",a[1]); //输出数组的第二个,即第二大值
}
2011-05-20