首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言實作:歌星大獎賽評分系統 (10位評委去極值求平均)

     編輯:關於C

模擬歌唱比賽評分:10 位評委打分 (1~100),去掉一個最高分與一個最低分,剩餘 8 分平均為最終得分。程式互動式輸入分數,排序後計算並顯示去除的最高/最低分、總分與平均分。

程式流程

  1. 輸入 10 個浮點數分數存入陣列。
  2. 氣泡排序法由小排到大。
  3. 累加索引 1~8 的分數(去掉索引 0 與 9)。
  4. 計算平均 = 總和 / 8。
  5. 輸出被去除的最高/最低分、總分、平均分。

完整代碼

#include <stdio.h>

#define NUM 10
void star(void);
void sort(float score[]);

int main() {
    int i;
    float sum = 0, average, score[NUM];

    star();
    printf("請輸入每個評委給您打的分數\n");
    for (i = 0; i < NUM; i++) {
        printf("第%2d位評委打的分數為:", i+1);
        scanf("%f", &score[i]);
    }

    sort(score);
    for (i = 1; i < NUM-1; i++) sum += score[i];
    average = sum / 8;

    printf("\n去掉的最高分為:%.2f\n", score[NUM-1]);
    printf("\n去掉的最低分為:%.2f\n", score[0]);
    printf("\n去掉最高最低分後,您的總分為:%.2f\n", sum);
    printf("\n去掉最高最低分後,您的平均分為:%.2f\n", average);
    printf("\n哈哈, 謝謝您的合作!\nGOOD BYE!\n");
    star();
    return 0;
}

void sort(float score[]) {
    int i, j; float t;
    for (i = 0; i < NUM; i++)
        for (j = i; j < NUM; j++)
            if (score[i] > score[j]) {
                t = score[i]; score[i] = score[j]; score[j] = t;
            }
}
void star(void) {
    for (int i = 0; i < 60; i++) printf("*");
    printf("\n");
}

互動式輸入輸出畫面

應用場景

適合各類去極值平均分計算:體操、花樣滑冰、歌唱比賽等。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved