Q
package zsy.study;
public class BubbleSort {
public static void main(String args[])
throws java.io.IOException{
int nums[] = new int[10];
for (int n=0;n<=9;n++)
nums[n] = Integer.valueOf(System.in.read());
//int nums[] = {66,22,11,44,99,33,88,55,77,1};
//Sort(nums);
for (int n=0;n<=9;n++)
System.out.println(nums[n]);
}
private static void Sort(int[] nums) {
for (int i=0;i<=9;i++){
for (int j=i;j<9;j++){
if (nums[j]>nums[j+1]){
int t = nums[j];
nums[j] = nums[j+1];
nums[j+1] = t;
}
}
}
}
}
运行程序时,nums数组里的数与输入数不符,很多32。
System.in.read的用途是获取字符的ASKII码,因为输入时用空格分开,因此很多都是空格的ASKII码32。
若不手动输入,直接赋值:
package zsy.study;
public class BubbleSort {
public static void main(String args[]) {
int nums[] = new int[10];
int nums[] = {66,22,11,44,99,33,88,55,77,1};
Sort(nums);
for (int n=0;n<=9;n++)
System.out.println(nums[n]);
}
private static void Sort(int[] nums) {
for (int i=0;i<=9;i++){
for (int j=i;j<9;j++){
if (nums[j]>nums[j+1]){
int t = nums[j];
nums[j] = nums[j+1];
nums[j+1] = t;
}
}
}
}
}
排序仍然错误
正确的方法:
private static void Sort(int[] nums) {
for (int i=9;i>=0;i--){
for (int j=0;j<i;j++){
if (nums[j]>nums[j+1]){
int t = nums[j];
nums[j] = nums[j+1];
nums[j+1] = t;
}
}
}
}