为啥是鸭蛋啊我在vs上面都ok的,大佬救命
查看原帖
为啥是鸭蛋啊我在vs上面都ok的,大佬救命
1200891
Zzp5201314楼主2023/11/21 20:25
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
// 计算得分
double calculateScore(int scores[], int numJudges) {
   double sum = 0;
   int minIndex = 0, maxIndex = 0;
   // 寻找最低分和最高分的索引
   for (int i = 1; i < numJudges; i++) {
       if (scores[i] < scores[minIndex]) {
           minIndex = i;
       }
      if (scores[i] > scores[maxIndex]) {
           maxIndex = i;
       }
   }
   // 计算总分,去掉一个最低分和一个最高分
   for (int i = 0; i < numJudges; i++) {
       if (i != minIndex && i != maxIndex) {
           sum += scores[i];
       }
   }
   // 计算平均分
   return sum / (numJudges - 2);
}
int main() {
  int n, m;
   printf("请输入参赛同学的人数 n 和评委的人数 m(以空格分隔):");
   scanf("%d %d", &n, &m);
   double highestScore = 0;
   for (int i = 0; i < n; i++) {
       // 使用动态内存分配创建评分数组
      int* scores = (int*)malloc(m * sizeof(int));
       if (scores == NULL) {
           fprintf(stderr, "内存分配失败\n");
           return 1;
      }
       printf("请输入第 %d 位同学的 %d 个评分:", i + 1, m);
       for (int j = 0; j < m; j++) {
          scanf("%d", &scores[j]);
       }

       // 计算该同学的得分
       double currentScore = calculateScore(scores, m);
       // 更新最高分
       if (currentScore > highestScore) {
           highestScore = currentScore;
       }
       // 释放动态分配的内存
       free(scores);
   }

   // 输出得分最高的同学的分数(保留2位小数)
   printf("得分最高的同学的分数为:%.2lf\n", highestScore);
  return 0;
}
2023/11/21 20:25
加载中...