《C语言及程序设计》实践参考——多科成绩单

简介: 返回:贺老师课程教学链接【项目2-多科成绩单】某班不超过100名同学。用二维数组score[][4]保存同学们的高数、英语、C语言成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:(1)输入学生的实际人数num,在输入各科的成绩时,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;(2)输出各门课及总分的最高成绩、最低成绩、平均成绩。

返回:贺老师课程教学链接


【项目2-多科成绩单】
某班不超过100名同学。用二维数组score[][4]保存同学们的高数、英语、C语言成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)输入学生的实际人数num,在输入各科的成绩时,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩。
#include <stdio.h>
void input(double s[][4],int n); //输入成绩
void output(double s[][4],int n); //输出成绩
double max(double s[][4],int n,int i); //求第i门课的最高成绩,i=3时是总分
double min(double s[][4],int n,int i); //求第i门课的最低成绩
double avg(double s[][4],int n,int i); //求第i门课的平均成绩


int main()
{
    int i,num;
    double score[100][4]; //设一个班最多100人,实际按输入来
    char course[4][10]= {"高等数学","英语","C++","总分"};
    printf("输入学生人数:");
    scanf("%d", &num);
    //(1)输入成绩并求出总分
    input(score,num);
    //(2)输出成绩
    output(score,num);


    //(3)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
    for(i=0; i<4; ++i)
    {
        printf("%s的最高成绩是%.2f, ", course[i], max(score,num,i));
        printf("最低成绩是%.2f, ", min(score,num,i));
        printf("平均成绩是%.2f ", avg(score,num,i));
        printf("\n");
    }
    return 0;
}

[参考解答]
#include <stdio.h>
void input(double s[][4],int n); //输入成绩
void output(double s[][4],int n); //输出成绩
double max(double s[][4],int n,int i); //求第i门课的最高成绩,i=3时是总分
double min(double s[][4],int n,int i); //求第i门课的最低成绩
double avg(double s[][4],int n,int i); //求第i门课的平均成绩

int main()
{
    int i,num;
    double score[100][4]; //设一个班最多100人,实际按输入来
    char course[4][10]= {"高等数学","英语","C++","总分"};
    printf("输入学生人数:");
    scanf("%d", &num);
    //(1)输入成绩并求出总分
    input(score,num);
    //(2)输出成绩
    output(score,num);

    //(3)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
    for(i=0; i<4; ++i)
    {
        printf("%s的最高成绩是%.2f, ", course[i], max(score,num,i));
        printf("最低成绩是%.2f, ", min(score,num,i));
        printf("平均成绩是%.2f ", avg(score,num,i));
        printf("\n");
    }
    return 0;
}


void input(double s[][4],int n) //输入成绩
{
    printf("输入学生成绩(按高数、英语、C++的顺序依次输入:)\n");
    int i;
    for(i=0; i<n; ++i)
    {
        scanf("%lf %lf %lf", &s[i][0], &s[i][1], &s[i][2]);
        s[i][3]=s[i][0]+s[i][1]+s[i][2];
    }
}

void output(double s[][4],int n) //输出成绩
{
    printf("输入的学生成绩为:\n");
    printf("学号\t高数\t英语\tC++\t总分\n");
    int i;
    for(i=0; i<n; ++i)
    {
        printf("%d\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n", i, s[i][0], s[i][1], s[i][2], s[i][3]);
    }
}
//求第i门课的最高成绩,i=3时是总分,下类似
double max(double s[][4],int n,int j)
{
    double m=s[0][j];
    int i;
    for(i=1; i<n; ++i)
        if (m<s[i][j])
            m=s[i][j];
    return m;
}
double min(double s[][4],int n,int j)
{
    double m=s[0][j];
    int i;
    for(i=1; i<n; ++i)
        if (m>s[i][j])
            m=s[i][j];
    return m;
}
double avg(double s[][4],int n,int j)
{
    double sum=s[0][j];
    int i;
    for(i=1; i<n; ++i)
        sum+=s[i][j];
    return sum/n;
}


目录
相关文章
|
4天前
|
存储 算法 C语言
【C 言专栏】用 C 语言开发游戏的实践
【5月更文挑战第5天】本文探讨了使用C语言开发游戏的实践,包括选择适合的游戏类型(如贪吃蛇、俄罗斯方块),设计游戏框架、图形界面和逻辑,以及音效添加。文章还强调了性能优化、测试调试、跨平台挑战及未来发展趋势。对于热衷于C语言的开发者,这是一次挑战与乐趣并存的探索之旅。
【C 言专栏】用 C 语言开发游戏的实践
|
8天前
|
存储 算法 程序员
【C言专栏】C 语言结构体的应用与实践
【4月更文挑战第30天】C语言中的结构体是自定义数据类型的关键,它组合不同类型的數據以创建新类型,尤其适合处理复杂对象如学生信息。通过定义结构体如`struct Student`,包含名字、学号和成绩,可以方便地实例化和访问成员。结构体在链表实现、函数参数传递和数组中都有广泛应用,如表示链表节点和处理批量数据。理解并熟练运用结构体对于C语言编程至关重要,能提升代码效率和可读性。
|
10天前
|
存储 缓存 算法
C语言循环语句的探讨与实践
C语言循环语句的探讨与实践
19 1
|
10天前
|
关系型数据库 MySQL 编译器
探索C语言的魅力:从基础到实践
探索C语言的魅力:从基础到实践
22 3
|
11天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
11天前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
|
11天前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
|
11天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
11天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
|
11天前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)