题干
期末考试快要到了,但是每个同学学的科目太多啦。学校为了给同学们早点放假回家,让同学在自己所学的科目中选 m 门科目进行考试。所选考试的科目的平均分就可以作为该学年的总学习成绩。
对于每一个同学来说,该同学所学的科目数为n,而学校要求只需要该同学在n门科目中选出m门课进行考试,考试科目的平均成绩可以作为该学年的总成绩。
而每一个同学所学的科目中,每个老师对于该同学的喜爱程度不同。期末考试中,任课老师给该同学评分依据老师对该同学的喜爱程度(喜爱程度的数值就是该科目的考试成绩)。
同学们非常苦恼,你能帮同学们算出他们在期末考试里可以获得的最高的总成绩吗?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
#include<time.h>
#include<Windows.h>
void fun(int love[],int m) {
for (int i = 0; i < 100-1; i++)
{
for (int j = 0; j < 100 - 1 - i; j++) {
if (love[j] < love[j+1]) {
int t = love[j];
love[j] = love[j + 1];
love[j + 1] = t;
}
}
}
double avg = 0;
int sum = 0;
for (int i = 0; i < m; i++)
{
sum += love[i];
}
avg = (sum * 1.0) / m;
printf("%2f\n", avg);
}
int main()
{
int T;
scanf("%d", &T);
if (T >= 1 && T <= 100) {
for (int i = 0; i < T; i++)
{
int m, n;
scanf("%d %d", &n,&m);
if (m >= 1 && m <= 10 && n >= 1 && n <= 10) {
int love[100];
for (int j = 0; j < n; j++)
{
scanf("%d", &love[j]);
}
fun(love,m);
}
}
}
system("pause");
}