C语言小练习三

题目要求:

定义一个二维数组保存 10个学生的5门课成绩,分别用函数实现:
(1)input():输入每个学生的成绩;
(2)output():输出每个学生的成绩;
(3)aver_stu():计算并输出每个学生的平均分;
(4)aver_cour():计算并输出每门课的平均分;
(5)highest():找出最高分数所对应的学生和课程。
程序运行时要求先在屏幕显示菜单,输入选择后分别调用对应的函数完成所选操作。

程序源码:

#include <stdio.h>

int array[10][5];

void input(void);
void output(void);
void aver_stu(void);
void aver_cour(void);
void highest(void);

int main(void)
{
    int n;

    input(); 

    printf("请输入您要执行的选项:\n\
            1.输出每个学生的成绩;\n            2.输出每个学生的平均分:\n            3.输出每门课程的平均分:\n            4.找出最高分数所对应的的学生和课程\n");

    scanf("%d", &n);

    switch(n)
    {
        case 1: output(); break;
        case 2: aver_stu(); break;
        case 3: aver_cour(); break;
        case 4: highest(); break;
    }                        

    return 0;
}

void input(void)
{
    int i, j;

    for(i = 0; i < 10; i++)
    {
        printf("请输入学生%d的成绩:", i + 1);

        for(j = 0; j < 5; j++)
        {
            scanf("%d", &array[i][j]);
        }
    }
}

void output(void)
{
    int i, j;

    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 5; j++)
        {
            printf("%d ", array[i][j]);
        }
        printf("\n");
    }
}

void aver_stu(void)
{
    int sum[10] = {
        0
    };
    double aver[10];
    int i, j;

    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 5; j++)
        {
            sum[i] += array[i][j];
        }
        aver[i] = sum[i] / 5;
        printf("学生%d的平均分为:%lf\n", i, aver[i]);
    }
}

void aver_cour(void)
{
    int i, j;
    int sum[5];
    double aver[5];

    for(j = 0; j < 5; j++)
    {
        for(i = 0; i < 10; i++)
        {
            sum[j] += array[i][j];
        }
        aver[j] = sum[j] / 10;
        printf("课程%d的平均分为:%lf\n", j, aver[j]);
    }
}

void highest(void)
{
    int i, j;
    int ii, jj;
    int max = array[0][0];

    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 5; j++)
        {
            if(max < array[i][j])
            {
                max = array[i][j];
                ii = i;
                jj = j;
            }
        }
    }
    printf("学生%d的课程%d得分最高,最高分为%d\n", ii, jj, max);
}
时间: 2024-10-27 04:44:39

C语言小练习三的相关文章

C语言小游戏设计报告

课程设计名称:贪吃蛇小游戏 专业班级:计科15-2 学号:150809229 姓名:XXX 一.设计目标 通过设计,培养学生对电脑的动手能力,使学生巩固<C语言程序设计>课程学习的内容,掌握编写程序的基本方法,强化对其的动手能力,可以独自完成程序的编写. 二.设计内容和要求 设计内容 编写贪吃蛇的小游戏,使其可以成功运行并且操作玩耍. 设计要求 1)源程序要有适当的注释,使程序便于阅读. 2)要有程序运行结果作为依据 三.程序流程 1.编写地图 运用函数,数组编写地图 2.相同的方法把蛇添加进

Linux下简单C语言小程序的反汇编分析

韩洋原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 写在开始,本文为因为参加MOOC相关课程而写的作业,如有疏漏,还请指出. 选了一门Linux内核分析课程,因为阅读内核代码中或多或少要涉及到At&T汇编代码的阅读,所以这里写下一个对一个简单C命令行程序的反汇编分析过程,一方面完成作业,另一方面当作练手.下面开始: 1.编写我们的C语言小程序 这里我们使用简单的例子,代码如下: 1

【C语言探索之旅】 第一部分第八课:第一个C语言小游戏

? 内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型 文

C语言 小游戏之贪吃蛇

还记得非常久曾经听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,认为非常难,根本没什么思路. 前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来. 如今大三,经过了这一年半的编程,如今认为这个C语言的贪吃蛇还是比較简单的,花的时间不非常多! 我认为主要是思路正确,基本上就米什么大的问题. 如今贴上我的代码和我的详解,希望大家多交流. 首先说下我这个贪吃蛇仅仅是一个简单的,游戏结束有2种可能:一碰墙,二自杀即蛇头碰到蛇身. 如有不好之处,请见谅把. 首先说下我这个贪吃蛇

第3天:语言基础(三)

Java 中基本数据类型的类型转换 Java 中的基本数据类型的转换分为两种:自动类型转换和强制类型转换 1.自动类型转换 当"小"的数据类型和"大"的数据类型进行计算时,会自动将"小"的数据类型转换成"大"的数据类型,然后再进行计算,得到的结果是最"大"的数据类型. 在进行方法的参数传递的时候,也是这样. 关于自动类型转换,有一个规则: 所有的 byte.short.char 都将转换成 int 类型 如

思科命令配置小技巧三:alias 命令

大家都用过手机上的快捷拨号设置 思科设备是否支持命令的快捷键定义呢 答案是肯定的 suzhouxiaoniu(config)#alias exec xx show ip inter bri  xx是自定义的快捷键名称,可以是数字 suzhouxiaoniu#xx 直接敲定义好的名称Interface                  IP-Address      OK? Method Status                ProtocolFastEthernet1/0          

苹果新的编程语言 Swift 语言进阶(三)--基本运算和扩展运算

一 基本操作运算 1. 赋值操作 在Swift 中,可以使用赋值操作为一个常量或一个变量赋值,也可以使用多元组一次为多个常量或变量赋值. Swift 的赋值操作与其它语言最大的不同是赋值操作除了能够为变量或常量赋值外本身不能够返回值. 这个特征可以避免某些条件下赋值操作错误地用于相等比较操作. 如在C语言中,if (x = =y) 很容易误写作if (x = y) ,虽然逻辑结果不正确,但C语言的编译器却无法检查出这种情况,而Swift 语言却可以有效避免这种情况发生,因为 在Swift 中if

C语言中的三字母词

C语言中的三字母词(trigraph) 在ANSI C标准中,定义了9个三字母词(trigraph),三字母词就是几个字符的序列,合起来表示另一个字符.三字母词使C语言环境可以在缺少一些必需字符的字符集(比如,一些非常老式的键盘上没有[]{}#\^~|)上实现.也许是由于这些字符集我们基本上用不到,所以在大多数C语言的书籍中,我们都看不到对三字母词的讲解.下图列出了9个三字母词以及它们所代表的的字符. 源代码中的"三字母词",在编译阶段会被替换为"对应的字符".对于

C语言函数调用栈(三)

6 调用栈实例分析 本节通过代码实例分析函数调用过程中栈帧的布局.形成和消亡. 6.1 栈帧的布局 示例代码如下: 1 //StackReg.c 2 #include <stdio.h> 3 4 //获取函数运行时寄存器%ebp和%esp的值 5 #define FETCH_SREG(_ebp, _esp) do{ 6 asm volatile( 7 "movl %%ebp, %0 \n" 8 "movl %%esp, %1 \n" 9 : "