一、有一个一维数组,内放10个运动员的年龄,编写一个函数,当主函数调用此函数后,能求出最大年龄、最小年龄和平均年龄。



#include <stdio.h>
void home6_2_1(int a[], int n) {
    int temp, sum = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n - 1; j++) {
            if (a[j] > a[j + 1]) {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
    for (int i = 0; i < n; i++) {
        sum += a[i];
    }
    printf("最大年龄:%d,最小年龄:%d,平均年龄:%.2f", a[9], a[0], sum/10.0);
}

int home62_1() {
    int a[10] = { 22,25,32,19,22,27,29,23,26,25 }, n = 10;
    home6_2_1(a, n);
    return 0;
}


二、设有10名歌手(编号为1-10)参加歌咏比赛,另有6名评委打分,每位歌手的得分从键盘输入:先提示“Please enter singer’s score: ”,再依次输入第1个歌手的6位评委打分(满分10分,分数为实数,分数之间使用空格分隔),第2个歌手的6位评委打分…以此类推。编写函数实现如下功能:
(1)计算出每位歌手的最终得分(扣除一个最高分和一个最低分后的平均分,最终得分保留2位小数)。
(2)按最终得分由高到低的顺序显示每位歌手的编号和最终得分。
(3)按歌手编号查找该歌手的排名。
提示:使用结构体数组。



#include <stdio.h>
#include <string.h>
struct Singer
{
    int num;
    int score[6];
    float finalscore;
};

void home6_2_2(struct Singer player[10]) {
    int temp;
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 6; j++) {
            for (int k = 0; k < 5; k++) {
                if (player[i].score[k] > player[i].score[k + 1]) {
                    temp = player[i].score[k];
                    player[i].score[k] = player[i].score[k + 1];
                    player[i].score[k + 1] = temp;
                }
            }
        }
    }
    for (int i = 0; i < 10; i++) {
        player[i].finalscore = (player[i].score[1] + player[i].score[2] + player[i].score[3] + player[i].score[4]) / 4.0;
    }
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 9; j++) {
            if (player[j].finalscore < player[j + 1].finalscore) {
                struct Singer tempdata = player[j];
                player[j] = player[j + 1];
                player[j + 1] = tempdata;
            }
        }
    }
    for (int i = 0; i < 10; i++) {
        printf("歌手编号:%d,最终得分:%.2f。\n", player[i].num, player[i].finalscore);
    }
}

void home6_2_2_search(struct Singer player[10], int num) {
    for (int i = 0; i < 10; i++) {
        if (player[i].num == num) {
            printf("该歌手排名为:%d", i + 1);
        }
    }
}

int main() {
    int number;
    struct Singer player[10];
    printf("Please enter singer’s score: \n");
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 6; j++) {
            scanf("%d", &player[i].score[j]);
        }
    }
    for (int i = 0; i < 10; i++) {
        player[i].num = i + 1;
    }
    home6_2_2(player);
    printf("请输入歌手编号:\n");
    scanf("%d", &number);
    home6_2_2_search(player, number);
    return 0;
}

标签: none

添加新评论

注意:已开启评论过滤器,无中文无法评论!
泡泡表情