C语言实训:删除数组元素与成绩统计程序解析
需积分: 47 24 浏览量
更新于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语言中基本的数组操作、用户输入、函数调用以及条件判断等核心概念。同时,它们也涉及到了动态计算平均分和查找最大值的算法。在实际编程中,需要注意内存管理、错误处理和代码的可读性。
2012-01-22 上传
2012-11-09 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
cangliangyiran
- 粉丝: 0
- 资源: 2
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析