成绩处理第二季

来源:互联网 发布:vbox虚拟机安装linux 编辑:程序博客网 时间:2024/06/09 23:44

题目见C++第14周项目3——成绩处理第二季

#include <stdio.h> #include <math.h> void input_score(int [],int);int get_max_score(int [], int);int get_min_score(int [], int);double get_avg_score(int [], int);double get_stdev_score(int [], int);int count(int,int [],int);void output_index(int ,int [],int); void main(){int score[50]; //将score 设为局部变量,通过数组名作函数参数,传递数组首地址,在函数中操作数组int num; //小组人数也设为局部变量,将作为函数的实际参数int max_score,min_score;printf("请输入人数\n");scanf("%d",&num);printf("请输入学生成绩\n");input_score(score,num);  //要求成绩在0-100之间 max_score=get_max_score(score, num);printf("最高成绩为:%d,共有%d人\n",max_score,count(max_score, score, num));min_score=get_min_score(score, num);printf("最低成绩为:%d,共有%d人\n",min_score,count(min_score,score, num));printf("平均成绩为:%f\n",get_avg_score(score, num));printf("标准偏差为:%f\n",get_stdev_score(score, num));printf("获最高成绩的学生(学号)有:");output_index(max_score,score, num);printf("\n");printf("获最低成绩的学生(学号)有:");output_index(min_score,score, num);printf("\n");}//input_score函数提供给同学们参考//input_score函数的功能是输入小组成员的成绩void input_score(int score[], int num){    int i;    for(i=0;i<num;i++)       do       {           printf("请输入学号为%d的同学的成绩",i);          scanf("%d",&score[i]);       }while(score[i]<0||score[i]>100);    return ; } // get_max_score()函数的功能是求出num名同学的最高成绩int get_max_score(int score[], int num){int i,m=0;for (i=0;i<num;i++){if (score[i]>m)m=score[i];}return(m);}// get_min_score()函数的功能是求出num名同学的最低成绩int get_min_score(int score[], int num){int i,m=100;for (i=0;i<num;i++){if (score[i]<m)m=score[i];}return(m);}// get_avg_score()函数的功能是求出num名同学的平均成绩double get_avg_score(int score[], int num){int i,a=0;for (i=0;i<num;i++)a+=score[i];return(a/num);}// get_ stdev _score()函数的功能是求出num名同学成绩的标准偏差double get_stdev_score(int score[], int num){int i;double stdev,a,accumulate=0;a=get_avg_score(score,num);for (i=0;i<num;i++){accumulate+=(score[i]-a)*(score[i]-a);}stdev=sqrt(accumulate/(num-1));return(stdev);}// count(int s)函数的功能是返回值score数组中为s的元素的个数int count(int s,int score[],int num){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 score[],int num){int i;for(i=0;i<num;i++){if (s==score[i])printf("%d ",i);}}


效果和上一篇完全相同

原创粉丝点击