提高篇16-19第二题

来源:互联网 发布:node.js是什么 编辑:程序博客网 时间:2024/06/05 07:16
#include <stdio.h>#include <stdlib.h>#include <math.h>//第二题void calcu(int);//处理和分数相关的功能int main(){int num;        //小组人数printf("小组共有多少名同学?");scanf("%d", &num);if (num >= 50){printf("输入人超过50,输入错误");exit(0);}elsecalcu(num);return 0;}void calcu(int num)//输入num名同学的成绩{double std_dev = 0, ave, temp_sum = 0;//标准差int count_max = 0, count_min = 0,sum=0;int max_score[50], min_score[50];int score[50]; //保存成绩的数组,不会超过50名int i,temp_score;int max, min;printf("请输入学生成绩:\n");for (i = 0; i < num; i++){printf("请输入第%d名学生的成绩:", i + 1);scanf("%d", &temp_score);if (temp_score >= 0 && temp_score <= 100)score[i] = temp_score;else{printf("分数输入范围错误,请重新输入\n");i--;}}max = score[0];min = score[0];for (i = 0; i < num; i++){sum += score[i];if (score[i] >= max)max = score[i];if (score[i] <= min)min = score[i];}ave = sum / num;printf("最高成绩为%d,最低成绩为%d,平均成绩为%.1lf\n",max,min,ave);for (i = 0; i < num; i++){if (score[i] == max){max_score[count_max] = i;count_max++;}if (score[i] == min){min_score[count_min] = i;count_min++;}}printf("取得最高分%d分共%d人,他们的学号是:", max, count_max);for (i = 0; i < count_max; i++)printf("%d ", max_score[i]+1);printf("\n");printf("取得最低分%d分共%d人,他们的学号是:", min, count_min);for (i = 0; i < count_min; i++)printf("%d ", min_score[i]+1);printf("\n");for (i = 0; i < num; i++){temp_sum += (score[i] - ave)*(score[i] - ave);}temp_sum /= num - 1;std_dev = sqrt(temp_sum);printf("标准偏差为%.3lf\n", std_dev);}

0 0
原创粉丝点击