科大讯飞最后一道笔试题:递归方式求数组的最大值最小值和平均值

小弟不才,初学者吧,写了个不伦不类的小程序,欢迎来拍砖指点一二。
public class getM{
	
public static void main(String[] args){
	int[] data={2,3,4,7,22,88,11,55,22,6,13};
	int max=0,min=0;
	double avg=0.0;
	getM getmm=new getM();
	getmm.getMaxMinAvg(data,0,max,min,avg);	
}
private void getMaxMinAvg(int[] data,int i,int MAX,int MIN,double AVG){
	if(i==0){//the first data of data
		MAX=MIN=data[0];
		AVG=data[0]*1.0;//int to be double
	}
	else if(i<data.length){//not outofboundindex
			if(MAX < data[i])MAX=data[i];//get MAX
			if(MIN >= data[i])MIN=data[i];//get MIN
			AVG=(AVG+data[i])*1.0;// get AVG
			if(i==(data.length-1)){// to print the results when caculate the last data
				System.out.println("最大数:"+MAX);
				System.out.println("最小数:"+MIN);
				System.out.println("平均数:"+AVG/data.length);
			}		
	}else{
		return;
	}	
	getMaxMinAvg(data,i+1,MAX,MIN,AVG);
}
}

你可能感兴趣的:(笔试题)