二维数组成绩处理,咋这么难叨叨

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

运行结果:

原创粉丝点击