C语⾔-青年歌⼿⼤赛-多种解法
⽂章⽬录
题⽬标题:青年歌⼿⼤奖——评委会打分
题⽬:在青年歌⼿⼤赛中,评委会给参赛选⼿打分,选⼿得分规则为去掉⼀个最⾼分和最低分,然后计算真正平均分,请编程 输出某位选⼿的得分
输⼊:输⼊数据有多组,每组占⼀⾏,每⾏的第⼀个数是N(2<n<=100),表⽰评委的⼈数,然后是n位评委的打分。
输出:输出选⼿的得分,结果保留两位⼩数,每组输出占⼀⾏。
⽰范⽤例:
样例输⼊:3 99 98 97
样例输出:98.00
样例输⼊:4 100 99 98 97
样例输出:98.50
⽅法⼀:司徒骏文
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n = 0, sum = 0;
伊莎贝尔 卢卡斯while (~scanf("%d", &n))//多组输⼊
{
sum = 0;
int* p = (int*)malloc(sizeof(int) * n);//为输⼊的分数的个数动态分配内存,创建数组
for (int i = 0; i < n; i++)//输⼊打分,并且存⼊数组中
{
scanf("%d", &p[i]);
}
for (int i = 0; i < n - 1; i++)//给数组排序(冒泡)
{
for (int j = 0; j < n - 1 - i; j++)
带我离开歌词
{
if(p[j]>p[j+1])
{
int temp = p[j];
p[j] = p[j + 1];
p[j + 1] = temp;
}
}
}
for (int i = 0; i < n; i++)//⽤sum存储数据的和
{
sum += p[i];
}
int* q = p;//记录⾸地址,⽅便释放malloc申请的内存,并且⽤于后续解引⽤表⽰数组⾸元素的值for (int i = 0; i < n; i++)//⽤指针指向数组中最⼤值的地址
{
p++;
}
printf("%f\n", 1.0 * (sum - *p - *q) / (n - 2));//总的数据减去最⼩和最⼤的数
free(q);//释放malloc申请的动态内存
}
return 0;
}
总结:详情请看图⽚注释
烈火英雄还原哪个事件
代码:
#include<stdio.h>
int main()水晶音乐盒
{
int max, i, min, k, n, sum;
double score;
while (~scanf("%d", &n))
{
sum = 0;
scanf("%d", &k);
max = k;
min = k;
sum += k;
for (i = 0; i < n - 1; i++)
{
scanf("%d", &k);
if (max < k)max = k;
if (min > k)min = k;
sum += k;
}
score = 1.0 * (sum - min - max) / (n - 2); printf("%.2lf", score);
}孟瑶的胸
}