import java.util.Scanner;
public class 求值 {
public static void main(String[] args) {
int[] arr=new int[5];
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
arr[0]=in.nextInt();
arr[1]=in.nextInt();
arr[2]=in.nextInt();
arr[3]=in.nextInt();
arr[4]=in.nextInt();
int i=0,j=0,k=0;
for(i=0;i<arr.length;i++) ;
if(arr[i]<arr[i+1]) {
k=arr[i];
arr[i]=arr[i+1];
arr[i+1]=k;
}
System.out.print("最大值為"+arr[0]+"最小值為:"+arr[4]);
}
}
uj5u.com熱心網友回復:
1、if沒在回圈體內,即時在回圈體內也沒做邊界限制,arr[i+1]會導致下標越界。2、代碼邏輯單次回圈并不能在out.print("最大值為"+arr[0]+"最小值為:"+arr[4])中得出正確的值。
3、冒泡排序
public static void main(String[] args) {
int[] arr = new int[5];
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
arr[0] = in.nextInt();
arr[1] = in.nextInt();
arr[2] = in.nextInt();
arr[3] = in.nextInt();
arr[4] = in.nextInt();
int i = 0, j = 0, k = 0;
for (i = 0; i < arr.length; i++) {
for (j = i + 1; j < arr.length; j++) {
if (arr[i] < arr[j]) {
k = arr[i];
arr[i] = arr[j];
arr[j] = k;
}
}
}
System.out.print("最大值為" + arr[0] + "最小值為:" + arr[4]);
}
uj5u.com熱心網友回復:
arr[i+1]越界了吧。上for里邊條件應該i<arr.length-1,因為只要回圈4次就可以了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/99278.html
標籤:Java SE
