/*
*Copyright (c) 2014,烟台大学计算机学院
*All right reserved.
*文件名称:main.cpp
*作 者:臧云吉
*完成时间:2014年11月24日
*版 本 号:v1.0
*问题描述:成绩处理
*输入描述:人数及成绩
*程序输出:输出处理结果
*/
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int score[50];
int num,i;
cout<<"一共有学生:";
cin>>num;
cout<<"请输入学生成绩:"<<endl;
for(int i1=0;i1<num;i1++)
{
int temp;
cout<<"输入第"<<i1<<"位同学的成绩:";
cin>>temp;
if(temp<0 || temp>100)
{
while(temp<0||temp>100)
{
cout<<"输入第"<<i1<<"位同学的成绩:";
cin>>temp;
}
}
score[i1]=temp;
}
int max=0,min=100;
double sum=0.0,average=0;
计算最大值最小值平均值并计算
for(int i2=0;i2<num;i2++)
{
if(score[i2]<min)
{
min=score[i2];
}
if(score[i2]>max)
{
max=score[i2];
}
sum+=score[i2];
}
average=sum/num;
cout<<"最高成绩为:"<<max<<",最低成绩为:"<<min<<",平均成绩为:"<<average;
求出并输出考得最高成绩和最低成绩的人数以及学号
int max_mark[50]={0},max_total=0;
int min_mark[50]={0},min_total=0;
int i4=0,i5=0;
for(int i3=0;i3<num;i3++)
{
if(score[i3]==max)
{
max_total++;
max_mark[i4]=i3;
i4++;
}
if(score[i3]==min)
{
min_total++;
min_mark[i5]=i3;
i5++;
}
}
cout<<endl;
cout<<"取得最高成绩的共"<<max_total<<"人,他们的学号是:";
for(int j1=0;j1<max_total;j1++)
{
cout<<max_mark[j1]<<" ";
}
cout<<endl;
cout<<"取得最低成绩的共"<<min_total<<"人,他们的学号是:";
for(int j2=0;j2<min_total;j2++)
{
cout<<min_mark[j2]<<" ";
}
cout<<endl;
求出并输出标准差
double s=0,sum2=0;
for(int i6=0;i6<num;i6++)
{
sum2+=pow((score[i6]-average),2);
}
s=sqrt(sum2/(num-1));
cout<<"标准偏差为:"<<s<<endl;
return 0;
}
运行结果