输入一些整数,求出它们的最大值,最小值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。
输入包含多组数据,每组数据第一行是整数个数n,第二行是n个整数。n = 0为输入结束标记,程序应当忽略这组数据。相邻两组数据之间输出一个空行。
样例输入:
8
2 8 3 5 1 7 3 6
样例输出:
Case 8:1 8 4.375
#include<stdio.h>
int main()
{
int x,n = 0,count = 0;
int min ,max;
while(scanf("%d",&n)==1&&n)
{
int s = 0;
for(int i = 0;i<n;i++)
{
scanf("%d",&x);
s += x;
if(x<min)
min = x;
if (x>max)
max = x;
count ++;
}
printf("Case %d: %d %d %.3f\n",count,min,max,(double)s/n);
}
return 0;
}
思路:给出一堆数组,最先想到用数组,其实通过scanf输入一堆整数,windows中,输入完毕后先按Enter键,再按Ctrl+Z键,最后再按Enter键,即可结束输入。通过定于最大值和最小值,放入while中进行遍历判断的出最小值最大值,在定义一个计数变量来得到输入整数的个数。
问题:变量在未赋值前是不稳定的,最好将max和min定义一个值。