彻底为贺老师解决了统计同学分数的问题
2013-11-27 17:30
309 查看
/* *Corpyright (c)2013,烟台大学计算机学院 *All right reseved. *作者:张梦佳 *完成日期:2013年11月27日 *版本号:v1.0 *输入描述: *问题描述:统计C++小组的成绩 *程序输出: *问题分析: *算法设计: */ #include <iostream> #include <cmath> using namespace std; int max(int score[50]);//自定义函数 int min(int score[50]); double pingjun(int score[50]); void max1(int score[50]); void min1(int score[50]); double piancha(int score[50]); int n;//讲将同学数定义全局变量 int main(void) { int i; int score[50]; cout<<"请输入小组共有多少名同学:"; cin>>n;//输入多少名同学 cout<<"请输入学生成绩:"<<endl; for(i=0;i<n;i++) { cout<<"输入第"<<i<<"位同学的成绩是:"; cin>>score[i]; if(score[i]>100||score[i]<0)//当大于100或小于0是要重新输入; i=i-1; } cout<<"最高成绩为:"<<max(score)<<","; cout<<"最低成绩为:"<<min(score)<<","; cout<<"平均成绩为:"<<pingjun(score)<<endl; max1(score); min1(score); cout<<"标准偏差为:"<<piancha(score)<<endl; } int max(int score[50])//最大值函数 { int num=0,i; for(i=0;i<n;i++) { if(score[i]>num) num=score[i]; } return num; } int min(int score[50])//最小值函数 { int num=100000,i; for(i=0;i<n;i++) { if(num>score[i]) num=score[i]; } return num; } double pingjun(int score[50])//平均值函数 { int i; double s=0,num=0; for(i=0;i<n;i++) { s=score[i]+s; } num=s/i; return num; } void max1(int score[50])//输出最大人数函数 { int num=0,i,s=0; for(i=0;i<n;i++) { if(score[i]>num) num=score[i]; } for(i=0;i<n;i++) { if(score[i]==num) s=s+1; } cout<<"取得最高成绩"<<num<<"分的共"<<s<<"人"<<endl; cout<<"他们的学号是"; for(i=0;i<n;i++) { if(score[i]==num) { if(i<10) cout<<"0"<<i<<" "; else cout<<i<<" "; } } cout<<endl; return; } void min1(int score[50])//输出最小函数函数 { int num=100000,i,s=0; for(i=0;i<n;i++) { if(score[i]<num) num=score[i]; } for(i=0;i<n;i++) { if(score[i]==num) s=s+1; } cout<<"取得最低成绩"<<num<<"分的共"<<s<<"人"<<endl; cout<<"他们的学号是"; for(i=0;i<n;i++) { if(score[i]==num) { if(i<10) cout<<"0"<<i<<" "; else cout<<i<<" "; } } cout<<endl; return; } double piancha(int score[50])//求标准偏差 { int i,q; double s=0,num=0,S,num1=0; for(i=0;i<n;i++) { s=score[i]+s; } num=s/i; for(q=0;q<n;q++) { num1=num1+(score[q]-num)*(score[q]-num); } S=sqrt(num1/(n-1)); return S; }
感悟:
其实可以简化很多,不过我感觉这样条理更清晰,所以没简化。。
错误一定有,望指出-----
相关文章推荐
- javascript脚本编程解决考试分数统计问题
- JavaScript 编程解决考试分数统计问题
- 彻底解决APP渠道统计和邀请码之痛点问题
- tomcat服务器配置字符集为utf-8-彻底解决中文乱码问题
- 彻底解决wordpress安装主题或插件需要FTP问题
- 彻底解决Symbian全屏显示问题
- 彻底解决程序乱码问题
- 彻底解决Ubuntu 14.04 重启后DNS配置丢失的问题
- Mysql学习总结(34)——Mysql 彻底解决中文乱码的问题
- 解决Bugfree不能定期发送统计邮件的问题
- 彻底解决Android GPS没法定位这一顽固问题
- sourceinsight中文显示乱码问题彻底解决办法
- 彻底解决Android 应用方法数不能超过65K的问题
- Eclipse插件开发中对于Jar包和类文件引用的处理(彻底解决插件开发中的NoClassDefFoundError问题)
- 彻底解决Ubuntu 14.04 重启后DNS配置丢失的问题
- JS组件系列——自己动手扩展BootstrapTable的 冻结列 功能:彻底解决高度问题
- 彻底解决windows XP 的启动问题 微软官方资料
- 彻底解决Fragment重复加载问题,杜绝一切卡顿现象
- HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数