/*
*Copyright(c) 2015/4/30 CSDN博客
*All rights reserved.
*文件名称:main.c
*作 者:金叶
*完成日期:2015/4/30
*版本号:V1.0
*问题描述:项目2-歌手大奖赛计分系列(加强版)
*/
#include <stdio.h>
void calScore(int n);
/* calScore()用于对于一位选手输入成绩,计算分数*/
int main()
{
int n; //n为评委人数
char choose;
printf("输入评委人数:");
scanf("%d",&n);
printf("请输入评委打分(1-10)\n");
do {
calScore (n);
printf("******************* SUCCESS ***********************\n");
printf("按 N 退出,其他键继续....");
fflush(stdin);
choose=getchar();
printf("\n");
}
while (choose !='n'&&choose!='N');
return 0;
}
void calScore(int n)
{
int people=1;
double score,ave,sum,max,min;
max=-1;
min=11;
sum=0;
do{
printf("第%d位评委给分:",people);
scanf("%lf",&score); //输入各评委分数
if(score<0||score>10)
continue;
sum=sum+score; //算总分
if (max<score) //利用循环得出最高最低分
max = score;
if (min>score)
min =score;
people++; //评委++
}
while (people<=n);
ave = (sum-max-min) / (n-2); //算平均值
printf("减去一个最高分: %.2lf", max);
printf("减去一个最低分: %.2lf \n", min);
printf("当前选手的最后得分是:%.3lf \n", ave);
}
一开始的思路也是用continue 然后用的地方不对 造成错误 反复修改不得,参考老师的答案 完成实践