package setp10; import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int[] scores={79,52,98,81}; /********** Begin **********/ //调用方法,传入成绩数组,并获取成绩的个数 int count=scores.length; sort(scores); /********** End **********/ System.out.println(Arrays.toString(scores)); System.out.println("共有"+count+"个成绩信息!"); } /* * 功能:将考试成绩排序并输出,返回成绩的个数 * */ /********** Begin **********/ public static int sort( int [] a ){ // 数组从小到大排序处理 for(int j=0;j<a.length;j++){ for(int i=0;i<a.length;i++){ if(a[i]>a[i+1]){ a[i]=a[i+1]; } } } // 打印出数组 for(int i=0;i<a.length;i++){ System.out.println(a[i]); } //返回数组中元素的个数 return a.length; } /********** End **********/ }怎么修改为正确的
时间: 2023-07-01 15:17:26 浏览: 116
这段代码需要修改两个地方才能正确执行:
1. 在sort方法中,循环变量i的结束条件应该是i < a.length-1,因为如果i到了最后一个元素,那么i+1就会越界。
2. 在sort方法中,比较a[i]和a[i+1]的大小关系时,应该交换这两个元素的位置,而不是把a[i+1]的值赋给a[i]。
修改后的代码如下:
```
package setp10;
import java.util.Arrays;
public class HelloWorld {
public static void main(String[] args) {
int[] scores={79,52,98,81};
int count=scores.length;
sort(scores);
System.out.println(Arrays.toString(scores));
System.out.println("共有"+count+"个成绩信息!");
}
public static int sort(int[] a) {
// 数组从小到大排序处理
for(int j=0;j<a.length;j++){
for(int i=0;i<a.length-1;i++){
if(a[i]>a[i+1]){
int temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
}
}
// 打印出数组
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
//返回数组中元素的个数
return a.length;
}
}
```
修改后的代码通过编译,运行后可以正确输出排序后的成绩和成绩的个数。
阅读全文