这是我的代码
import java.util.Scanner;
public class NthSmallest{
public static void main (String [] args){
Scanner input = new Scanner(System.in);
System.out.println("Please enter the size of the array");
final int N = 15;
int n = input.nextInt();
int array[] = new int [N];
System.out.println("enter 15 number ");
for (int i = 0 ; i < array.length; i++ ) {
array[i] = input.nextInt();
}
System.out.println(findNthSmallest(array, n ));
}
public static int findNthSmallest( int array[], int n ){
int i, j,t=0;
for(i = 0; i < n; i++){
for(j = 1; j < (n-i); j++){
if(array[j-1] > array[j]){
t = array[j-1];
array[j-1]=array[j];
array[j]=t;
}
}
}
return array[n-1];
}
}
当我想找到fifthSmallestNumber
并输入5作为第一个输入时,程序会找到数字5而不是第五个最小数字。我该如何解决?
答案 0 :(得分:1)
在你的for循环中,它应该是:
for(i = 0; i < array.length; i++){
for(j = 1; j < (array.length-i); j++){
答案 1 :(得分:0)
试试这个:
public static int findNthSmallest(int[] array, int n) {
Arrays.sort(array);
return array[n-1];
}