HDU2014 青年歌手大赛_评委会打分

HDU2014 青年歌手大赛_评委会打分
HDU2014 青年歌手大赛_评委会打分

#include <iostream>
#include <cstdio>

using namespace std;
int main()
{
	int n;
	while(cin >> n)
	{
		int sum = 0;
		int a;
		cin >> a;
		int max = a;
		int min = a;
		sum += a;
		for(int i=1; i<n; i++)
		{
			cin >> a;
			if(a < min)
			{
				min = a;
			}
			if(a > max)
			{
				max = a;
			}
			sum += a;
			//cout << max << " " << min << " " << sum << endl;
		}

		double ave = (double)(sum-min-max)/(n-2);
		//cout << sum << " " << ave << endl;
		printf("%.2f\n", ave);

	}

	return 0;
}

刚开始没有看到去掉一个最高分和一个最低分,导致错误,后来在计算平均值的时候分子减掉了max和min但是分子忘记减2.。。

#include <iostream>
#include <cstdio>
#include <cstring>

int a[101] = {0};

using namespace std;
int main()
{
	int n;

	while(cin >> n)
	{
		int max = 0;
		int min = 100;
		double sum = 0.0;
		for(int i=0; i<n; i++)
		{
			cin >> a[i];
			if(a[i] < min)
			{
				min = a[i];
			}
			if(a[i] > max)
			{
				max = a[i];
			}
			sum += a[i];
		}
		printf("%.2f\n", (sum-max-min)/(n-2));
		memset(a, 0, sizeof(a));	//数组清零

	}

	return 0;
}

注意memset的用法
HDU2014 青年歌手大赛_评委会打分

常见为数组初始化,memset(a, 0, sizeof a),表明为数组a的从第0个元素开始的位置起向后直到最后一个元素为止都赋值为0;