永发信息网

排序不正常,大家帮忙看看哪错了?

答案:2  悬赏:40  手机版
解决时间 2021-05-17 01:00
  • 提问者网友:欲劫无渡
  • 2021-05-16 13:43
import java.io.*;
class ArraySort {
 
 public static void main(String []args) throws Exception {
  
  BufferedReader keyin = new BufferedReader(new InputStreamReader(System.in));
  int a[],i,j,k,temp;
  String c;
  System.out.println("Input the number of array elements!");
  c = keyin.readLine();
  temp = Integer.parseInt(c);
  a = new int[temp];
  System.out.println("  Input   "+temp+"   numbers.One per Line!");
  
  for(i=0; i<a.length; i++ ) {
   c = keyin.readLine();
   a[i] = Integer.parseInt(c); 
  }
  
  System.out.println("After sorting!");
  
  for(i=0; i<=a.length; i++) {
   
    k = i;
    for(j=i+1; j<a.length; j++){
     
     if(a[j]<a[k]){
      k = j;
     
     temp = a[i];
     a[i] = a[k];
     a[k] = temp;
     }
    }
    
  }
 
   for(i=0; i<a.length; i++) {
    System.out.println(a[i]); 
   }
 }
}
最佳答案
  • 五星知识达人网友:行雁书
  • 2021-05-16 15:09
我试了几组结果都对啊
全部回答
  • 1楼网友:酒安江南
  • 2021-05-16 16:32

 for(i=0; i<=a.length; i++) {
   
    k = i;
    for(j=i+1; j<a.length; j++){
    
    if(a[j]<a[k]){
    k = j;//这里变为j了 对比的对象不在是i了  所以这个位置是错的

//所以这句话删除

    
    temp = a[i];
    a[i] = a[k];//这里直接有 a[j]
    a[k] = temp;//这里也直接用a[j]
    }
    }

; i<=a.length了  但 i =a.length的时候 a[i]就出错了

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯