3701 - C++作业2-2:演讲大赛选手成绩计算
时间限制 : 2 秒
内存限制 : 32 MB
演讲大赛选手成绩计算方法如下:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后成绩。这里假设共有10位评委,都是按照百分制打分。
程序运行结果如下:
88 90 97 89 85 95 77 86 92 83
88.5
如果评委给出的成绩不在0~100分之间,将给出错误提示(不需要重新输入数据):the score is invalid.(注意结尾有英文句点)然后程序结束。
程序运行结果如下:
101 90 97 89 85 95 77 86 92 83
the score is invalid.
题目输入
10个0~100分之间的数
题目输出
1个可以表示小数的数或者提示信息“the score is invalid.”
输入/输出样例
输入格式
88 90 97 89 85 95 77 86 92 83
输出格式
88.5
C语言解答
#include <stdio.h> int main() { int score[10]; int i, sum=0; for( i=0; i<10; i++ ){ scanf("%d",&score[i]); if( score[i]>=100 )break; } int max=score[0], min=score[0]; if( i==10 ){ for( i=0; i<10; i++ ){ if( max<score[i] ){ max = score[i]; } if( min>score[i] ){ min = score[i]; } sum += score[i]; } sum = sum-min-max; float aver = sum/8.0; printf("%.1f",aver); }else printf("the score is invalid."); return 0; }
C++解答
#include<iostream> using namespace std; int main(){ int i,flag1=0,flag2=0; float max=0,min=100,sum=0; float da[10]; for (i=0;i<10;i++){ cin>>da[i]; if ((da[i]>100)||(da[i]<0)){ cout<<"the score is invalid."; return 1; } } for (i=0;i<10;i++){ if (da[i]>max){ max=da[i]; flag1=i; } if (da[i]<min){ min=da[i]; flag2=i; } } da[flag1]=0,da[flag2]=0; for (i=0;i<10;i++){ sum+=da[i]; } cout<<sum/8<<endl; return 0; }