貌似比较简单的程序题,真下手做,却遇到很多陷阱。哎,只怪自己基本功不够扎实,用了很长时间才写出来。下面是源码。
import java.util.Scanner;
public class Sample1 {
public static void main(String[] args) {
//对输入的指定个数的整数,求出其中最大值和最小值。(数组实现)
int[] intArr = new int[]{};
int len = 0;
for(int m=0;1==1;m++){
System.out.print("请输一个整数并回车,输入E结束输入");
Scanner sc = new Scanner(System.in);
String str = sc.next();
if(str.equalsIgnoreCase("E")){
break;
}
len = intArr.length;
if(m >= len)
intArr = expendArr(intArr,(len+1)*2);
intArr[m] = Integer.parseInt(str);//异常部分没有处理
}
int minInt = 0;
int maxInt = 0;
if(intArr.length>0){
minInt = intArr[0];
maxInt = intArr[0];
for(int i=0;i<=len;i++){
if(minInt > intArr[i])
minInt = intArr[i];
if(maxInt < intArr[i])
maxInt = intArr[i];
}
}
System.out.println("您输入的最大整数为:"+maxInt);
System.out.println("您输入的最小整数为:"+minInt);
}
//自动扩展数组长度
public static int[] expendArr(int[] src, int size){
if(src.length >= size){
return src;
}
int[] retArr = new int[size];
System.arraycopy(src, 0, retArr, 0, src.length);
return retArr;
}
}
如有更为简单的方法,还望不吝赐教!