/*
*Copyright (c) 2014, 烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:陈栋梁
*完成日期:2014年 11 月 24 日
*版本号:v1.0
*
*问题描述:
*/
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double score[50];
int num,i;
cout<<"小组共有多少名同学?" << endl;
cin>>num;
cout<<"请输入学生成绩:"<<endl;
for (i=0; i<num; ++i)
{
cin >> score[i];
while(score[i]<0 || score[i]>100)
{
cout << "数据错误,成绩应在0-100之内,重新输入:" << endl;
cin >> score[i];
}
}
double min,max,sum=score[0];
for (i=1; i<num; ++i)
{
if (score[i]>score[i-1])
{
max=score[i];
min=score[i-1];
}
else
{
max=score[i-1];
min=score[i];
}
sum+=score[i];
}
double average=sum/num;
cout << "最高成绩:" << max << endl
<< "最低成绩:" << min << endl
<< "平均成绩:" << average << endl;
int cmax[num],cmin[num],max_n=0,min_n=0,max_i=0,min_i=0;
for (i=0; i<num; ++i)
{
if(max==score[i])
{
cmax[max_i]=i;
++max_n;
++max_i;
}
if(min==score[i])
{
cmin[min_i]=i;
++min_n;
++min_i;
}
}
cout << "取得最高成绩的共" << max_n << "人," << endl<< "学号是:";
for(max_i=0;max_i<max_n;++max_i)
cout << cmax[max_i] << " ";
cout << endl << "取得最低成绩的共" << min_n << "人," << endl<< "学号是:";
for(min_i=0;min_i<min_n;++min_i)
cout << cmin[min_i] << " ";
double s=0,S;
for (i=0; i<num; ++i)
{
double x=pow(score[i]-average,2);
s+=x;
}
S=sqrt(s/(num-1));
cout <<endl << "标准偏差:" << S << endl;
return 0;
}
运行结果: