游客 Signup | Login
中文 | En

3701 - C++作业2-2:演讲大赛选手成绩计算

演讲大赛选手成绩计算方法如下:去掉一个最高分,去掉一个最低分,将剩下分数的平均值作为选手的最后成绩。这里假设共有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.

Input

10个0~100分之间的数

Output

1个可以表示小数的数或者提示信息“the score is invalid.”

Examples

Input

88 90 97 89 85 95 77 86 92 83

Output

88.5

Solution 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;
}

Solution 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;
}

Time Limit 2 seconds
Memory Limit 32 MB
Discuss Stats
上一题 下一题