问题六十一: 在数组score中将要存储某小组C++程序设计的成绩.

来源:互联网 发布:福州网络学校 编辑:程序博客网 时间:2024/05/16 04:34
/* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)     * 程序的版权和版本声明部分     * All rights reserved.     * 文件名称: txt.c     * 作    者: liuyongshui     * 问    题:  在数组score中将要存储某小组C++程序设计的成绩.* 问题来源:  http://blog.csdn.net/sxhelijian/article/details/8036157  * 完成日期: 2013 年4 月18日     * 版 本 号: V1.0     */    #include <stdio.h>#include <math.h>float total(float grade[], int num);float average(float sum, int num);float deviation(float grade[], float ave, int num);    //求偏差void max_min(float grade[], int num);int main(){    int i;int num;float sum;float ave;float dev;  //偏差float grade[100];    printf("您班上有人?嘻嘻嘻共有:");scanf("%d", &num);    printf("\n");    for(i=0; i<num; i++){    printf("输入第%2d位同学的成绩(按EENTER进入):", i);scanf("%f", &grade[i]);}    sum= total(grade, num);printf("\n总成绩为:%0.2f\n", sum);ave= average(sum, num);printf("\n平均分为:%0.2f\n", ave);    dev= deviation(grade, ave, num);printf("\n偏差为:%0.2f\n\n", dev);    max_min(grade, num);return 0;}//sum()函数声明float total(float grade[], int num)   //求总分{    int i;float sum=0.0;for(i=0; i<num; i++){    sum+=grade[i];   }return sum;}//average()函数声明float average(float sum, int num)   //求平均分{     float ave;     ave=sum/num; return ave;}//deviation()函数声明float deviation(float grade[], float ave, int num)    //求偏差{    int i;float s=0.0;float dev;for(i=0; i<num; i++){   s=s+(grade[i]-ave)*(grade[i]-ave);}dev=sqrt(s/(num-1));     return dev;}//max_min()函数声明void max_min(float grade[], int num){    int i;    int j=0;int l=0;int  max_num[100];int  min_num[100];    float max;float min;    max=min=grade[0];for(i=0; i<num; i++){    if(max< grade[i]){max= grade[i];    //求最大值}if(min> grade[i]){    min= grade[i];    //求最小值}}for(i=0; i<num; i++){    if(max== grade[i]){   max_num[j++]=i;   //记录最最大值的学号}if(min== grade[i]){   min_num[l++]=i;    //记录最最小值的学号}}    printf("最高分为:%0.2f\n", max);printf("最高分的学号有:");for(i=0; i<j; i++){printf("%d", max_num[i]);if(i<j-1)    //i<j-1是打印逗号,反之不打印 {    printf(",");}}printf("\n\n");printf("最低分为:%0.2f\n", min);printf("最低分的学号有:");for(i=0; i<l; i++){   printf("%d", min_num[i]);if(i<l-1) //i<l-1是打印逗号,反之不打印 {    printf(",");}}printf("\n");}