成绩处理改进错误的地方是标准差的函数

来源:互联网 发布:ubuntu怎么删除软件 编辑:程序博客网 时间:2024/06/05 08:48
/*  * 程序的版权和版本声明部分  * Copyright (c)2012, 烟台大学计算机学院学生  * All rightsreserved.  * 文件名称: array.cpp                             * 作    者: 徐汉玉                             * 完成日期: 2012 年11  月28日  * 版本号: v1.0        *   * 输入描述:无  * 问题描述:*/   #include <iostream>  #include<Cmath>   using namespace std;   //在这个问题中,成绩和人数是核心数据,适合作为全局变量处理   int score[50];    //将score设为全局变量,在各个函数中可以直接使用   int num;        //小组人数也设为全局变量  void input_score();  int get_max_score();  int get_min_score();  double get_avg_score();  double get_stdev_score();  int count(int);  void output_index(int);       int main(void)  {     int max_score,min_score;   cout<<"小组共有多少名同学?";    cin>>num;       cout<<endl<<"请输入学生成绩:"<<endl;    input_score();  //要求成绩在0-100之间     max_score=get_max_score();    cout<<endl<<"最高成绩为:"<<max_score<<",共有 "<<count(max_score )<<" 人。";    min_score=get_min_score();    cout<<endl<<"最低成绩为:"<<min_score<<",共有 "<<count(min_score )<<" 人。";    cout<<endl<<"平均成绩为:"<<get_avg_score();      cout<<endl<<"标准偏差为:"<<get_stdev_score();    cout<<endl<<"获最高成绩的学生(学号)有:";    output_index(max_score);    cout<<endl<<"获最低成绩的学生(学号)有:";    output_index(min_score);        return 0;   }      //input_score函数提供给同学们参考  //input_score函数的功能是输入小组成员的成绩  void input_score()  {      int i;      for(i=0;i<num;i++)         do         {             cout<<"输入第 "<<i<<" 位同学的成绩:";             cin>>score[i];         }while(score[i]<0||score[i]>100);      return;    }     // get_max_score()函数的功能是求出num名同学的最高成绩  int get_max_score()  {int i,max=-9999;for(i=0;i<num;i++){if(score[i]>max)max=score[i];}    return max;}      // get_min_score()函数的功能是求出num名同学的最低成绩  int get_min_score()  {int i,min=101;    for(i=0;i<num;++i){if(score[i]<min)min=score[i];}return min;}      // get_avg_score()函数的功能是求出num名同学的平均成绩  double get_avg_score()  {int i,sum=0,ave;for(i=0;i<num;++i){sum=sum+score[i];}ave=sum/num;   return ave;}      // get_ stdev _score()函数的功能是求出num名同学成绩的标准偏差  double get_stdev_score()  {  int  i,n,sum=0;  double s;  for(i=0;i<num;++i){     n=score[i]-get_avg_score();  sum=sum+pow(n,2);  }  s=sqrt(sum/(num-1));  return s;  }      // count(int s)函数的功能是返回值score数组中为s的元素的个数  int count(int s)  { int i,n=0;   for(i=0;i<num;++i){if(score[i]==s)n++;}    return n;}      // output_index函数的功能是输出score数组中值为s的元素的下标(index)  //注意:值为s的元素可能有多个  void output_index(int s)  {    int i;  for(i=0;i<num;++i){  if(score[i]==s)  cout<<i<<" ";    }}   


运行结果:

原创粉丝点击