输出第二大数(用数组)

第一种方法:(冒泡排序)
核心部分:
for(i=0;i<=14;i++)//数组a[15]从零到十四一共十五个数
{
for(j=0;j<=14-i;j++)//循环一次能排出一个最大值因此需要循环14次,每次循环都有一个数排到最大,故每次减一即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
今日推荐