C语言编程:计算学生平均成绩并存储到磁盘

需积分: 5 1 下载量 174 浏览量 更新于2024-07-31 收藏 208KB DOC 举报
"该资源是一份包含经典C语言源程序的文档,主要目的是通过实例讲解C语言编程。其中包含了两个程序示例。第一个程序旨在计算并列出所有由1、2、3、4四个数字组成的互不相同且无重复数字的三位数。第二个程序则根据输入的利润值计算不同利润区间对应的奖金提成比例,并输出总奖金数额。" 在这份文档中,我们可以学到以下几个关键的C语言编程知识点: 1. **结构体(struct)的使用**: - 在标题描述的程序中,定义了一个名为`student`的结构体,用于存储学生的信息,包括学号(num)、姓名(name)和三门课程的成绩(score)以及平均成绩(avr)。 - 结构体数组`stu[5]`用于存储5个学生的所有信息。 - 使用`fwrite()`函数将结构体数组写入文件,`sizeof(struct student)`用于获取结构体的大小。 2. **文件操作**: - 使用`fopen()`函数打开文件,"w"表示写模式,用于将数据写入磁盘文件"stud"中。 - `fwrite()`函数用于将内存中的数据写入文件,参数分别为要写入的数据、数据类型大小、数据个数。 - `fclose()`函数用于关闭文件,确保数据正确写入后释放文件资源。 3. **循环控制**: - 在程序1中,使用了三层嵌套循环(for循环)遍历所有可能的三位数组合,避免重复。 - 在循环内部,使用条件判断语句`if(i!=k&&i!=j&&j!=k)`保证三个数字互不相同。 4. **条件判断与逻辑运算**: - 程序2中,通过一系列的`if...else if...`语句处理不同利润区间的奖金计算,根据输入的利润值决定执行哪个计算逻辑。 5. **浮点数运算**: - 计算平均成绩时,使用了浮点数除法`sum/3.0`,确保结果是浮点数而非整数。 6. **输入输出(I/O)**: - 使用`scanf()`函数从键盘接收用户输入的数据,如学生的成绩和利润值。 - 使用`printf()`函数输出计算结果,例如程序1中的三位数组合和程序2中的奖金总额。 7. **变量的使用和类型**: - 程序2中,考虑到奖金可能很大,因此将奖金定义为长整型`long int`,以防止溢出。 通过这两个示例,学习者可以掌握C语言的基本结构,如数据结构、文件操作、循环、条件判断以及输入输出等核心概念。同时,也可以了解到如何将这些概念应用于实际问题的解决方案中。