HDU2014 青年歌手大賽_評委會打分
阿新 • • 發佈:2018-12-15
#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;