我希望在不使用Arrays.sort的情况下帮助修复“最小”输出和更改代码只是一些线索会没问题。
package newempty;
import java.util.*;
public class NewEmpty{
public static void main (String args []){
Scanner in = new Scanner (System.in);
int bry [] = new int [5];
int high = bry[0];
int low = bry[0];
for (int i = 0; i < bry.length; i++){
System.out.print("Enter a Number: ");
bry[i] = in.nextInt();
}
System.out.print("Ascending Order: ");
for (int i = 0; i<bry.length; i++){
high = bry [i] > high ? bry[i]:high;
Arrays.sort(bry);
System.out.print(" " + bry[i]);
}
System.out.print("\nDescending Order: ");
for (int i = bry.length-1; i>=0; i--){
low = bry [i] < low ? bry[i]:low;
Arrays.sort(bry);
System.out.print(" " + bry[i]);
}
System.out.println("\nMinimum: " + low);
System.out.println("Maximum: " + high);
}
}
答案 0 :(得分:0)
当你正在循环中时,不要对数组进行排序!
for (int i = bry.length-1; i>=0; i--){
low = bry [i] < low ? bry[i]:low;
Arrays.sort(bry);
System.out.print(" " + bry[i]);
}
你不必一遍又一遍地对它进行排序。一次就足够了。一旦排序,它就会被排序。此外,一旦您对其进行了排序,您就不必去搜索最小值和最大值。它们分别位于列表的开头和结尾。
请改为:
Arrays.sort(bry);
low = bry[0];
high = bry[bry.length-1];
System.out.print("Ascending Order: ");
for (int i = 0; i < bry.length; i++){
System.out.print(" " + bry[i]);
}
System.out.println();
System.out.print("Descending Order: ");
for (int i = bry.length-1; i>=0; i--){
System.out.print(" " + bry[i]);
}
在一个完全不相关的说明中,现在忘记&#34; \ n&#34;是换行符。事实并非如此。 \ n是Unixland中的换行符。 \ r \ n是Windows中的换行符。较旧的Mac使用\ r \ n作为换行符。其他一些系统甚至使用\ n \ r。
http://en.wikipedia.org/wiki/Newline
如果您认为\ n到处都是换行符,您将会遇到麻烦。在这种情况下,你可以要求println,但你也可以养成要求的习惯:
String newline = System.getProperty("line.separator");
这将为您提供适用于运行代码的系统的任何换行符。