1. 程式人生 > >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的用法 在這裡插入圖片描述

常見為陣列初始化,memset(a, 0, sizeof a),表明為陣列a的從第0個元素開始的位置起向後直到最後一個元素為止都賦值為0;