/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:test.cpp
*作 者:anGelovEr 王坤
*完成日期:2014年11月23日
*版 本 号:v1.0
*
*问题描述:统计学生成绩。
*程序输出:最高分最低分平均分标准差。
*/
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int score[50]; //保存成绩的数组,不会超过50名
int num,i=1,j,s,high=-1,low=101,sum=0,highc=0,lowc=0;
double ave;//令i=1,是为了输出时显示第一个为第“一”位同学的成绩。
cout<<"小组共有多少名同学?"<<endl;
cin>>num;
cout<<"请输入学生成绩:"<<endl;
while(i<=num) //输入num名同学的成绩
{
cout<<"请输入第"<<i<<"位同学的成绩:";
cin>>s;
if(s>=0&&s<=100) //成绩范围为0-100
{
score[i]=s;
sum+=s; //计算总和
if(s>high) //比较最高分最低分
high=s;
if(s<low)
low=s;
++i;
}
else
cout<<"请检查数据并重新输入学生成绩(0-100):"<<endl; //输入错误后要重新输入
}
ave=sum/num;
cout<<"最高成绩为:"<<high<<"分;"<<"最低成绩为:"<<low<<"分;"<<"平均成绩为:"<<ave<<"分。"<<endl;
for(j=1; j<=num; j++) //求出并输出考得最高成绩和最低成绩人数
{
if(score[j]==high)
highc++;
if(score[j]==low)
lowc++;
}
cout<<"取得最高成绩"<<high<<"的共有"<<highc<<"人,他们的学号为:";
for(j=1; j<=num; j++) //再次筛选出考得最高成绩和最低成绩的学号
{
if(high==score[j])
cout<<j<<" ";
}
cout<<endl;
cout<<"取得最低成绩"<<low<<"的共有"<<lowc<<"人,他们的学号为:";
for(j=1; j<=num; j++)
{
if(low==score[j])
cout<<j<<" ";
}
cout<<endl;
double m=0;
int x,y;
for(j=1; j<=num; j++)
{
x=score[j]-ave;
y=x*x;
m+=y;
}
cout<<"标准偏差为:"<<sqrt(m/(num-1))<<endl;
return 0;
}
知识点总结:数组这么用应该没问题。
学习心得:不知道说啥好啊……