Problem A. 求平均分
输入:
两行
第一行是分数个数 n
第二行是这 n 个分数,以空格隔开
输出:
去掉最高分与最低分后的平均成绩
代码:
#include <bits/stdc++.h>
#define FF(a,b) for(int a=0;a<b;a++)
#define F(a,b) for(int a=1;a<=b;a++)
#define LEN 200
#define INF 100000
#define bug(x) cout<<#x<<"="<<x<<endl;
using namespace std;
typedef long long ll;
const double pi=acos(-1);
int a[LEN];
int main()
{
freopen("./in","r",stdin);
int N;
scanf("%d",&N);
FF(i,N){
scanf("%d",&a[i]);
}
sort(a,a+N);
int sum=accumulate(a+1,a+N-1,0);
double avg=(double)sum/(double)(N-2);
printf("%.2f",avg);
return 0;
}
Problem B. 密码
输入:
一行
第一行:26 个小写字母 以空格隔开 如 b a c e u f g h i j k l m n o p q r s t v w x y z d…
v y z r s q
第二行:一个字符串(大写字母) 如: BUPTZ
输出:
(B 用第一行的第二个字母替换,U 用第 21 个替换,P 用第(‘A’-‘P’+1)个替换, Z 用第 26 个字母 q
替换)