用数组与函数解决实际问题

#include <stdio.h>

float Aver_stu(int (*score)[5]);
float Aver_class(int (*score)[5]);
void print(int score[2][5], float aver_stu, float aver_class);

int main(int argc, char const *argv[])
{
    int score[2][5] = {0};
    float aver_stu = 0, aver_class = 0;

    printf("请输入学生的成绩!");
    for (int i = 0; i < 2; i++)
    {
        printf("NO. %d ", i + 1);
        for (int j = 0; j < 5; j++)
        {
            scanf("%d", &score[i][j]);
        }
    }

    // 输出学生的成绩,打印出来
    printf("学生序号\t语文\t数学\t英语\t物理\t化学");
    for (int i = 0; i < 2; i++) //注意打印输出制表时,要注意格式对齐
    {
        printf("    NO.%d   ", i + 1);
        for (int j = 0; j < 5; j++)
        {
            printf("%8d", score[i][j]);
        }
        printf("
");
    }

    //计算学生的各科加起来的总分,以及学生的平均分
    //计算每个科目所有学生的总分,以及每个科目的平均分
    aver_stu = Aver_stu(score);
    aver_class = Aver_class(score);
    printf("学生平均分: %.1f", aver_stu);
    printf("科目平均分: %.1f", aver_class);

    return 0;
}

//定义一个Aver_stu函数来计算学生的单人各科平均分
float Aver_stu(int (*score)[5])
{
    int i = 0, j = 0;
    int sum = 0;
    float aver_stu = 0;
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 5; j++)
        {
            sum += score[i][j];
        }
    }
    aver_stu = sum / (2 * 5);
    return aver_stu;
}

//定义一个函数Aver_class函数来计算各科的平均分
float Aver_class(int (*score)[5])
{
    int i = 0, j = 0;
    int sum = 0;
    float aver_class = 0;
    for (j = 0; j < 5; j++)
    {
        for (i = 0; i < 2; i++)
        {
            sum += score[i][j];
        }
    }
    aver_class = sum / (2 * 5);
    return aver_class;
}

//定义一个打印所有数据的函数print
void print(int score[2][5], float aver_stu, float aver_class)
{
    int i = 0, j = 0;
    printf("统计结果");
    printf("学生序号\t语文\t数学\t英语\t物理\t化学\t平均分");
    for (int i = 0; i < 2; i++) //注意打印输出制表时,要注意格式对齐
    {
        printf("    NO.%d   ", i + 1);
        for (int j = 0; j < 5; j++)
        {
            printf("%8d", score[i][j]);
        }
        printf("%8.1f", aver_stu);
        printf("");
    }

    printf("单科平均分:");
    for (j = 0; j < 5; j++)
    {
        printf("%8.1f\t", aver_class);
    }
    printf("");
}

对于新手来说,在写代码的过程中最重要的就是思路,即逻辑思维。那在这段代码中,我们可以在写代码的过程中将

这段代码的主要目的是计算和打印两个学生的五门科目成绩的总分、平均分,以及每门科目的平均分。具体来说:

输入两个学生的五门科目成绩(语文、数学、英语、物理、化学)。
输出每个学生的成绩。
计算每个学生的总分和平均分,并输出。
计算每门科目所有学生的总分和平均分,并输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值