C语言歌咏比赛得分计算程序:扣除最高最低分求平均
#include <stdio.h>
#include <stdlib.h>
#define N 10
#define M 6
void input(int scores[][M]);
void output(int scores[][M], float final_scores[]);
void sort(float final_scores[], int sorted_indexes[]);
int main()
{
int scores[N][M];
float final_scores[N];
int sorted_indexes[N];
input(scores);
output(scores, final_scores);
sort(final_scores, sorted_indexes);
printf("rank ID score\n");
for (int i = 0; i < N; i++)
printf("%d %d %.2f\n", i + 1, sorted_indexes[i] + 1, final_scores[sorted_indexes[i]]);
return 0;
}
void input(int scores[][M])
{
for (int i = 0; i < N; i++)
{
printf("input scores of singer %d: ", i + 1);
for (int j = 0; j < M; j++)
scanf("%d", &scores[i][j]);
}
}
void output(int scores[][M], float final_scores[])
{
for (int i = 0; i < N; i++)
{
int max_index = 0, min_index = 0;
float sum = scores[i][0];
for (int j = 1; j < M; j++)
{
sum += scores[i][j];
if (scores[i][j] > scores[i][max_index])
max_index = j;
if (scores[i][j] < scores[i][min_index])
min_index = j;
}
sum -= scores[i][max_index];
sum -= scores[i][min_index];
final_scores[i] = sum / (M - 2);
}
}
void sort(float final_scores[], int sorted_indexes[])
{
for (int i = 0; i < N; i++)
sorted_indexes[i] = i;
for (int i = 0; i < N - 1; i++)
for (int j = i + 1; j < N; j++)
if (final_scores[sorted_indexes[i]] < final_scores[sorted_indexes[j]])
{
int temp = sorted_indexes[i];
sorted_indexes[i] = sorted_indexes[j];
sorted_indexes[j] = temp;
}
}
原文地址: https://www.cveoy.top/t/topic/nH5F 著作权归作者所有。请勿转载和采集!