import java.util.Scanner;
public class shujutongji {
public final static int INF=1000000000;
public static void main(String[] args) {
// TODO Auto-generated method stub
int x,n=0,t=0,s=0;
boolean kase=false;
Scanner scanner=new Scanner(System.in);
while(!scanner.hasNext("0")) {
t=scanner.nextInt();
int min=INF,max=-INF;
for(int i=0;i<t;i++) {
x=scanner.nextInt();
s+=x;
if(x<min)min=x;
if(x>max)max=x;
n++;
}
if (kase) {
System.out.println('\n');
}
kase=true;
System.out.println(min+" "+max+" "+(double)s/n);
}
}
}
- 在多数据的题目中,一个常见的错误是:在计算完一组数据后某些变量没 有重置,影响到下组数据的求解。 解决方法很简单,把min和max定义在while循环中即可,这样每次执行循环体时,会新 声明和初始化min和max。
- 下一个要点是kase变量的使用。不难看出它是“当前数据编号”计数器。当输出第2组或以 后的结果时,会在前面加一个空行,符合题目“相邻两组数据的输出以空行隔开”的规定。注 意,最后一组数据的输出会以回车符结束,但之后不会有空行。不同的题目会有不同的规 定,请读者仔细阅读题目