问题及代码:
/*
*Copyright (c) 2014,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:吴胜男
*完成日期:2014年11月21日
*版本号:v1.0
*
*问题描述:在数组score中将要存储某小组C++程序设计的成绩,请设计实现下面的各功能函数,并在main函数中调用,组合成一个完整应用。
*输入描述:成绩
*程序输出:输出最高成绩、最低成绩和平均成绩,考得最高成绩和最低成绩人数以及学号和标准偏差。
*/
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int score[50]; //保存成绩的数组,不会超过50名
int num,i; //小组人数
cout<<"小组共有多少名同学?";
cin>>num;
cout<<"请输入学生成绩:"<<endl;
for(i=0; i<num; i++)
{
cout<<"输入第"<<i<<"位同学的成绩:";
cin>>score[i];
if(score[i]>100||score[i]<0)
i--;
}//输入num名同学的成绩
cout<<endl;
int max=0,min=100,sum=0,ave;
for(i=0; i<num; i++)
{
sum=sum+score[i];
if(score[i]>=max)
max=score[i];
if(score[i]<=min)
min=score[i];
}
ave=sum/num;
cout<<"最高成绩为:"<<max<<",";
cout<<"最低成绩为:"<<min<<",";
cout<<"平均成绩为:"<<ave;//求出并输出最高成绩、最低成绩和平均成绩
cout<<endl;
int a=0,b=0;
for(i=0; i<num; i++)
{
if(score[i]==max)
a++;
if(score[i]==min)
b++;
}
cout<<"取得最高成绩"<<max<<"分的共"<<a<<"人,"<<"他们的学号是:";
for(i=0; i<num; i++)
{
if(score[i]==max)
cout<<i<<" ";
}
cout<<endl;
cout<<"取得最低成绩"<<min<<"分的共"<<b<<"人,"<<"他们的学号是:";
for(i=0; i<num; i++)
{
if(score[i]==min)
cout<<i<<" ";
}//求出并输出考得最高成绩和最低成绩人数以及学号
cout<<endl;
double SUM=0,AVE,S;
for(i=0; i<num; i++)
{
SUM=SUM+(score[i]-ave)*(score[i]-ave);
}
AVE=SUM/(num-1);
S=sqrt(AVE);
cout<<"标准偏差为:"<<S;
//求出并输出标准偏差(选做)
return 0;
}
运行结果:
知识点总结:cin即输入数值,i--的应用,此处学号的输出遇到了问题,掌握方法。
学习心得:经过自己设计以及参考组长的程序,终于编出来了!!