成绩处理
来源:互联网 发布:vscode配置go 编辑:程序博客网 时间:2024/06/10 03:31
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: array.cpp* 作 者:纪子龙* 完成日期:2012 年 11月 29日* 版本号: v1.0** 输入描述:无* 问题描述:略*/#include<iostream>#include <Cmath>using namespace std; int score[50]; 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(){ int max_score,min_score; cout<<"小组共有多少同学?"; cin>>num; cout<<endl<<"请输入同学成绩:"<<endl; input_score(); 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; } void input_score(){ int i; for(i=1;i<=num;i++) do{ cout<<"请输入第"<<i<<"位同学的成绩:"; cin>>score[i]; }while(score[i]<0||score[i]>100); return; } int get_max_score(){ int max=-1,i; for(i=1;i<=num;i++) if(max<=score[i]) max=score[i]; return max; } int get_min_score(){ int min=101,i; for(i=1;i<=num;i++) if(min>=score[i]) min=score[i]; return min; } double get_avg_score(){ int sum=0,i,avg; for(i=1;i<=num;i++) sum+=score[i]; avg=sum/num; return avg; } double get_stdev_score(){ int sum=0,i,std; for(i=1;i<=num;i++) sum+=(score[i]-get_avg_score())*(score[i]-get_avg_score()); std=sqrt(sum/(num-1)); return std; } int count(int s){ int i,c=0; for(i=1;i<=num;i++) if(s==score[i]) c++; return c; } void output_index(int s){ int i; for(i=1;i<=num;i++) if(s==score[i]) cout<<i<<'\t'; return; } 运行结果: