第二大整数

问题描述

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

样例输入

5 8 -12 7 0

样例输出

7

/***************************************************************************************************

import java.util.*;

     public class Main

      {

      pubilc void show(int arr[],int i)

        {

            int j,count=0;

            //首先我们要建立一个新的数组来保存非零的数

            //其次我们要建立一个count来定位我们输入数在数组的位置(类似指针的作用)

            int arrs[]=new int[i];

            for(j=0;j<arr.length;j++)

              {

               if(arr[j]!=0)

                {

                  arrs[count]=arr[j];

                  count++;

                } 

              }

            System.out.println(arrs[arrs.length-2]);

        }

      public static void main(String args[])

        {

          //为遍历数组做准备i

          int i,n,arr[]=new int[20];

          Scannner sc=new Scanner(System.in);

          //定义一个变量来保存数组的每一个输入的数n,并且为我们输入0的时候来终结数组的遍历

          for(i=0;i<arr.length;i++)

          {

            arr[i]=sc.nextInt();

            n=arr[i];

            if(n!=0) arr[i]=sc.nextInt(); 

          }else break;

          //通过java的Arrays.sort();来进行快排

          Arrays.sort(arr);

          //排顺序了,现在思考一下,如果是征服数混合或者正数的话,这样我们直接输出arr[arr.length-2];这个就可以了

          //但是如果全都是负数的话,由于我们初始化了分配空间大小的时候,其他没有赋值的地方都是0,这样我们就要处理;

          //这样我们来写一个show()来展示一下我们的处理

            show(arr,i);

        

        }

      }

**********************************************************************************************************************/

//上面是个人写的,下面通过集合的方式,我们可以通过集合的list.add()来和get()来获取,这样就减少了上面代码数组的开辟空间,产生了多余的空间,并占有0,对我们结果有排序结果有影响的问题

    import java.util.*;

      public class Main

        {

          //定义一个集合数组,用泛型

          Scanner sc=new Scanner(System.in);

          List<Integer> list=new ArraryList<>();

          int a=0;

          while((a=sc.nextInt())!=0);

              {

                list.add(a);

              }

               Collections.sort(list);

                  System.out.println(llist.get(list.size()-2));

        }

posted on 2015-11-13 17:41  CazyCode牛  阅读(200)  评论(0编辑  收藏  举报

导航