成绩计算

来源:互联网 发布:开票软件数据更新失败 编辑:程序博客网 时间:2024/04/29 00:50

设计大奖赛的计分程序,成绩在0-10 之间,输入错误时要能马上重新输入,选手最后得分为:去掉一个最高分和一个最低分。输出当前选手的最后得分后,提示“按任意键计算下一位选手的成绩,退出请选择N。如果输入的不是N 或n,可以为下一位选手计算成绩。

#include <stdio.h>main(){int i,number=0;float a,max=0,min=10,sum,average;char quit;printf("请输入评委数\t");scanf("%d",&number);do{sum=0;for(i=0;i<number;i++){do{printf("请输入第%d位评委成绩(0~10)\t",i+1);scanf("%f",&a);}while(a<0||a>10);sum+=a;if (a>max)max=a;if (a<min)min=a;}average=(sum-max-min)/(number-2);printf("去掉最高分:%f分\t",max);printf("去掉最低分:%f分\t",min);printf("最后得分:%f分\n",average);printf("输入N退出\n");fflush(stdin);quit=getchar();}while (quit!='N');}

一开始没用fflush(stdin);清空缓冲区,导致scanf读的回车影响了quit=getchar();,不执行此语句,使循环无法退出。(貌似\空格\+scanf也能达到清缓存的效果……)

原创粉丝点击