能否请教个问题???
比如一个数组,输入一个数表示数组中第几大,然后再找出此数在数组中第几个,如果有相同的可以随便输出一个位子

解决方案 »

  1.   

    求一个数组中的第几大的数,这个貌似是算法课的题目。
    若一个数组int []a=new int [10];比如找第三大的数,你可以构造一个三个元素的数组,先放三个元素进去,在拿那七个元素比较,把小的元素从第二个数组中剔除。最后再用第二个数组的最后一个元素和原数组比较得出他的位置就行了,貌似这个方法有点笨
      

  2.   

    import java.util.Scanner;
    public class ArrIndex { /**
     * @param args
     */
    public static void main(String[] args) {
    int[] arr = {1,2,35,8,7,6};//new int[10];
    Scanner in = new Scanner(System.in);
    System.out.println("请输入排位");
    int index = in.nextInt();
    if(index >= arr.length){
    System.out.println("输入数字越界");
    }else{
    int[] sortArr =  sort(arr);
    int desiIndex = searchIndex(int[] arr,sortArr[index - 1] );
    System.out.println("第" + index + "大的数的下标位置为" + desiIndex );
    }
    }

    public static int[] sort(int[] array){
    for(int i = 0;i < array.length;i++){
    for(int j = 0;j <= i;j++){
    if(array[j] < array[i]){
    int temp = array[j];
    array[j] = array[i];
    array[i] = temp;
    }
    }
    }
    return array;
    }

    public int searchIndex(int[] arr,int a){
    int index = 0;
    for(int i = 0;i < arr.length;i++ ){
    if( a == arr[i]){
    index = i;
    break;
    }
    }
    return index;
    }}
      

  3.   

    上面的我弄错了,没去测试。
    这次才是对的
    import java.util.Scanner;
    public class ArrIndex { /**
     * @param args
     */
    public static void main(String[] args) {
    int[] arr = {1,2,35,8,7,6};//new int[10];
    int[] srcArr = {1,2,35,8,7,6};;
    Scanner in = new Scanner(System.in);
    System.out.println("请输入排位");
    int index = in.nextInt();
    if(index > arr.length){
    System.out.println("输入数字越界");
    }else{
    int[] sortArr =  sort(arr);
    int desiIndex = searchIndex( srcArr,sortArr[index - 1] );
    System.out.println("第" + index + "大的数的下标位置为" + desiIndex );
    }
    }

    public static int[] sort(int[] array){
    for(int i = 0;i < array.length;i++){
    for(int j = 0;j <= i;j++){
    if(array[j] < array[i]){
    int temp = array[j];
    array[j] = array[i];
    array[i] = temp;
    }
    }
    }
    return array;
    }

    public static int searchIndex(int[] arr,int a){
    int index = 0;
    for(int i = 0;i < arr.length;i++ ){
    if( a == arr[i]){
    index = i;
    break;
    }
    }
    return index;
    }}
      

  4.   

    import java.util.Arrays;int a[] = {5,7,2,9};
    Arrays.sort(a);
    a = [2,5,7,9]
      

  5.   

    public class Test{
      public static void main(String[] args){
          int[] intArray={11,5,8,55,22,3};
          boolean falg=true;
          while(falg){
          Scanner in = new Scanner(System.in); 
          System.out.println("请输入排位"); 
          int index = in.nextInt(); 
          if(index>=intArray.length){
           System.out.println("你输入的无效,请重新输入"+intArray.length+"以内的数字"); 
           continue;
          }else
          {
           Arrays.sort(intArray);
           System.out.println("第"+index+"位数字是:"+intArray[index-1]);
           in.close();
           falg=false;
          }
          }
      }
    }