您的位置:首页 > 编程语言 > Java开发

算法-蓝桥杯-算法提高 第二大整数 (JAVA)

2018-03-27 17:32 399 查看

1 引言

    第九篇文章。

2 题目

问题描述  编写一个程序,读入一组整数(不超过20个),当用户输入0时,表示输入结束。然后程序将从这组整数中,把第二大的那个整数找出来,并把它打印出来。说明:(1)0表示输入结束,它本身并不计入这组整数中。(2)在这组整数中,既有正数,也可能有负数。(3)这组整数的个数不少于2个。
  输入格式:输入只有一行,包括若干个整数,中间用空格隔开,最后一个整数为0。
  输出格式:输出第二大的那个整数。
  输入输出样例样例输入5 8 -12 7 0样例输出7

3 源代码

import java.util.*;
class Main
{
public static void main(String[] agrs)
{
Scanner sc=new Scanner(System.in);
int[] a=new int[20];
int result=0;
int i;
int[] b=new int[20];
for(i=0;i<20;i++)
{
a[i]=sc.nextInt();
if(a[i]==0)//终止输入元素的值
break;
}
sc.close();
for(int j=0;j<i;j++)
{
for(int k=0;k<i-1;k++)
{
if(a[k]<a[k+1])//排序
{
int temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
}
}
System.out.println(a[1]);//输出结果
}
}

4 思路讲解

    在输入时,设置一个判断条件,输入的元素中有“0”时,结束输入。第二部分开始循环遍历,不过截止的条件是结束时的“i”值,第二层的“k<i-1”是为了防止在下面的排序过程中,出现数组越界的情况。排序之后,输出数组中第二个元素即可(下标为1)。

5  结束语

    分享和帮助是人生一大乐事,希望可以帮助您。本人才疏学浅,如果有不当之处,还请批评指正。同时欢迎大家评论、点赞及转发!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息