多数据输入题目

       输入一些整数,求出它们的最小值、最大值和平均数(保留三位小数)。输入保证这些数都是不超过10001的整数。输入包含多组数据,每组数据第一行是整数个数n,第二行是n个整数。n=0为输入结束标志,程序应当忽略这组数据。相邻两组数据之间应输出一个空行。

#include
#define INF 1000000000
int main(){
	int x,n=0,kase=0;
	while(scanf("%d",&n)==1&&n){
		int s=0;
		int min=INF;
		int max=-INF;
		int i;
		for(i=0;imax){
				max=x;	
			}
			if(x

      上面这个程序中while的判断条件,题目虽然给了n=0为输入结束标志,还是需要添加上判断scanf返回值的语句,为了鲁棒性,算法竞赛题目中的输入输出是人设计的,难免会出错,如果能够自动处理好有瑕疵的数据,会节约大量的时间。同时在多数据的题目中,一个常见的错误就是在计算完一组数据后某些变量没有重置,影响到下组数据的求解。这时就需要我们将某某些变量定义在循环之内。当嵌套的两个代码块中有同名变量时,内层的变量会屏蔽外层变量,有时会引起十分隐蔽的错误。

你可能感兴趣的:(算法竞赛学习,算法,c语言)