描述
从键盘上输入若干个数,表示若干个学生的成绩,当成绩小于0时表示结束输入。计算出输入学生的平均成绩,最高分和最低分,并输出不及格成绩学生的人数。
输入
每个测试数据包括N个数,表示N个学生的成绩,当遇到小于0的数时,作输入结束处理。
输出
输出这些学生的平均成绩(精确到2位小数),最高分,最低分和不及格成绩的人数,用空格隔开这些数据结果。
样例输入
60 70 80 90 100 -1
样例输出
80.00 100.00 60.00 0
#include <stdio.h>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
double n,maxx=0,minn=101,v=0,t=0,num=0;
while(1)
{
scanf("%lf",&n);
if(n<0)
break;
num++;
if(n>maxx)
maxx=n;
if(n<minn)
minn=n;
if(n<60)
t++;
v+=n;
}
printf("%.2lf %.2lf %.2lf %.lf\n",v/num,maxx,minn,t);
return 0;
}
以前用数组总是说超内存,后来看了看别人的代码,发现完全没有必要使用到数组,因为只要逐次比较就可以找到最大最小值,然后在用一个变量将输入的值都加起来除以数目就是平均值了