C语言实训:删除数组元素与成绩统计程序解析
需积分: 47 125 浏览量
更新于2024-07-27
2
收藏 293KB PDF 举报
"上海电机学院C语言实训50题答案"
在给定的实训题目中,我们可以看到两个C语言编程任务。下面是这两个任务的详细解释和相关知识点:
任务一:
这个任务要求编写一个C程序来删除一个整型数组中所有等于特定值n的元素。程序应该包括一个主函数和一个子函数。主函数负责接收用户输入的10个正整数和要删除的值n,而子函数负责删除值为n的元素。
1. 主函数`main()`:
- 用户输入:通过`scanf`函数获取10个正整数和一个整数n。
- 调用子函数`fun()`,将处理后的数组传回。
- 输出删除n后的数组元素。
2. 子函数`fun(int *b, int m)`:
- 参数:b指向原始数组,m是要删除的值。
- 新数组`c[]`用于存储处理后的元素。
- 使用一个循环遍历原始数组,如果当前元素不等于m,则将其复制到新数组c[]。
- 返回新数组的长度,即删除n后的有效元素数量。
在这个程序中,子函数`fun()`实际上没有正确地更新数组`c[]`。它应该将非n元素复制到`c[]`,而不是将指针`b+j`直接赋值给`c[k]`。此外,注释中的无限循环部分是为了处理连续的相同值,但代码并未正确实现。实际实现时,可以使用一个额外的变量来跟踪连续的相同值,而不需要无限循环。
任务二:
这个任务要求编写一个程序来处理10个学生5门课程的成绩,计算每个学生的平均分、每门课程的平均分,并找出最高分对应的学生和课程。
1. 主函数`main()`:
- 两层循环分别处理学生和课程,使用`scanf`读取成绩。
- 计算每个学生的总分并除以5得到平均分,存储在`a[i][5]`位置。
- 使用循环和条件语句找到最高分及其对应的学号(N)和课程编号(C)。
2. 计算平均分:
- 对于每个学生,使用`sum`变量累加5门课程的分数,然后除以5得到平均分。
- 对于每门课程,可以使用类似的逻辑遍历所有学生的成绩,累加后再除以学生总数。
在这个程序中,变量`H`、`N`和`C`用于追踪最高分及其对应的学号和课程编号。在每个学生的成绩输入完成后,都要更新这些变量,以确保始终记录的是目前的最高分。
这两个任务展示了C语言中基本的数组操作、用户输入、函数调用以及条件判断等核心概念。同时,它们也涉及到了动态计算平均分和查找最大值的算法。在实际编程中,需要注意内存管理、错误处理和代码的可读性。
9814 浏览量
128 浏览量
28361 浏览量
629 浏览量
730 浏览量
1227 浏览量
2355 浏览量
2336 浏览量

cangliangyiran
- 粉丝: 0
最新资源
- webacus工具实现自动页面生成与报表导出功能
- 深入理解FAT32文件系统及其数据存储与管理
- 玛纳斯·穆莱全栈Web开发学习与WakaTime统计
- mini翼虎播放器官方安装版:CG视频教程全能播放器
- CoCreate-pickr:轻便的JavaScript选择器组件指南与演示
- 掌握Xdebug 5.6:PHP代码调试与性能追踪
- NLW4节点项目:使用TypeORM和SQLite进行用户ID管理
- 深入了解Linux Bluetooth开源栈bluez源代码解析
- STM32与A7105射频芯片的点对点收发控制实现
- 微信高仿项目实践:FragmentUtil使用与分析
- 官方发布的CG视频教程播放器 mini翼虎x32v2015.7.31.0
- 使用python-lambder自动化AWS Lambda计划任务
- 掌握异步编程:深入学习JavaScript的Ajax和Fetch API
- LTC6803电池管理系统(BMS)经典程序解析
- 酷音传送v2.0.1.4:正版网络音乐平台,歌词同步功能
- Java面向对象编程练习:多态在游戏对战模拟中的应用