




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验四实验四 数组数组 实验课程名 实验课程名 高级语言程序设计 C 专业班级 专业班级 电气本二电气本二 学号 学号 20 姓名 姓名 吴琛吴琛 实验时间 实验时间 2012 5 9 实验地点 实验地点 K4 202 指导教师 指导教师 吴建设吴建设 一 实验目的和要求 1 掌握一维数组和二维数组的定义 赋值和输入输出的方法 2 掌握字符数组和字符串函数的使用 3 掌握与数组有关的算法 特别是排序算法 二 实验内容 1 任务名称1 调试下列程序 使之具有如下功能 输入 10 个整数 按每行 3 个数 输出这些整数 最后输出 10 个整数的平均值 写出调试过程 inclue define N 10 void main int i a N av for i 0 i N i scanf d a i for i 0 i N i printf d a i if i 3 0 printf n for i 0 i N i av a i printf av f n av 上面给出的程序是完全可以运行的 但是运行结果是完全错误的 调试时请注意数 组元素的输入问题 输出格式问题等 请使用前面实验所掌握的调试工具 判断程序 中的错误并改正 相关知识 数组元素值的输入 求和求平均值的相关变量初始化问题 输出格式符的正确使用 数组元素的格式化输出 源代码 inclue define N 10 void main int i a N av for i 0 i N i scanf d a i for i 0 i N i printf d a i if i 3 0 printf n for i 0 i N i av a i printf av f n av 改正后程序 include void main int i n a 10 float avg n 10 for i 0 i n i scanf d for i 0 i n i printf d a i if i 1 3 0 printf n avg 0 for i 0 i n i avg a i avg 10 printf navg f n avg printf 学号 20 姓名 吴琛 实验四第一题 运行结果 需要截图 运行结果分析 数组元素值的输入 求和求平均值的相关变量初始化问题 输 出格式符的正确使用 数组元素的格式化输出 2 任务名称 下面程序是输入 5 个数据 然后求它们的和并输出结果 源代码 include void main int i a 5 sum 0 scanf d d d d d a for i 0 i 4 i sum a i printf sum d n sum 该程序中有哪些错误 如何修改 写出正确运行后的结果 相关知识 数组元素的输入和输出只能逐个元素操作 而不能以数组名作整体操 作 改正后的程序 include void main int i a 5 sum 0 for i 0 i 4 i scanf d sum a 0 a 1 a 2 a 3 a 4 printf sum d n sum printf 学号 20 姓名 吴琛 实验四第二题 运行结果 需要截图 运行结果分析 数组元素的输入和输出只能逐个元素操作 而不能以数 组名作整体操作 3 任务名称 有一个 3 行 4 列的距阵 现要求编程求出其中最大的那个元素的值 以及它所在的行 号与列号 程序的初始说明和输出语句如下所示 请补充完成该程序 源代码 include void main int i j row colum max static int a 3 4 1 2 3 4 9 8 7 6 10 10 5 2 printf Max d Row d Colum d n max row colum 编程点拨 初始化 row colum 及 max 使用 for 循环的双重循环逐行把元素值与 max 值进行比较 比较结果如 果元素值比 max 值大 则改变 max 值 同时改变 row 和 colum 的值 最后输出 max row 和 colum 的值 相关知识 二维数组的定义和初始化 使用二重循环对二维数组元素的访问 求最值时相关变量初值的设定 include void main int i j row 0 colum 0 max int a 3 4 1 2 3 4 9 8 7 6 10 10 5 2 max a 0 0 for i 0 i 2 i for j 0 jmax max a i j row i colum j printf max d row d colum d n max row colum printf 学号 20 姓名 吴琛 实验四第三题 运行结果 需要截图 运行结果分析 初始化 row colum 及 max 再使用 for 循环的双重循环逐行把元 素值与 max 值进行比较 比较结果如果元素值比 max 值大 则改变 max 值 同时改 变 row 和 colum 的值 4 任务名称 数组中已存互不相同的 10 个整数 从键盘输入一个整数 输出与该值相同的数组元素 下标 编程点拨 输入要查找的变量 x 的值 使用循环将输入的数和数组元素逐个进行比较 若找到 则提前退出循环 根据循环是正常结束还是提前结束来判断是否找到 x 部分源代码 include void main int i x a 10 1 2 3 4 5 6 7 8 9 10 输入 x 变量的值 for i 0 i 10 i printf 4d a i printf n 循环查找与 x 相等的元素 if printf d n i 输出查找结论 输出下标值 else printf Not found d n x 源代码 include void main int i x a 10 1 2 3 4 5 6 7 8 9 10 printf 请输入一个整数 scanf d for i 0 i 10 i printf 2d n a i for i 0 i 10 printf Not found d n x printf 学号 20 姓名 吴琛 实验四第四题 运行结果 需要截图 运行结果分析 输入要查找的变量 x 的值 使用循环将输入的数和数组元素逐个进行 比较 若找到 则提前退出循环 根据循环是正常结束还是提前结束来判断是否找到 x 5 任务名称 编写程序 任意输入 10 个整数的数列 先将整数按照从大到小的顺序进行排序 然后 输入一个整数插入到数列中 使数列保持从大到小的顺序 编程点拨 定义数组时多开辟一个存储单元 找合适的插入位置 20 18 16 14 12 10 8 6 4 2 a 0123456789 下标 10 k15 找合适的插入位置找合适的插入位置 j 3 j 3 j 0 a j k 即20 15 是 j j 1 a j k 即18 15 是 j j 2 a j k 即16 15 是 j j 3 a j k 即14 15 不是 结束循环 while a j k i a i 1 a i 20 18 16 14 12 10 8 6 4 2 a 0123456789 下标 10 k15 插入 部分源代码 include define N 11 void main int i j a N printf Please input 10 numbers for i 0 i N 1 i scanf d 乱序输入 10 个整数 相关知识 比较排序法 选择排序法和冒泡排序法 数据元素的插入 源代码 include define N 11 void main int i j t x temp1 temp2 a N printf Please input 10 numbers n for i 0 i N 1 i scanf d for j 0 j 9 j for i 0 i 9 j i if a i a i 1 t a i a i a i 1 a i 1 t printf the sorted numbers n for i 0 i 10 i printf d a i printf n scanf d t a 9 if x t a 10 x else for i 0 i 10 i if a i x temp1 a i k 0 for i 1 i 10 i if a k a i k i a i x for j i 1 j 11 j temp2 a j a j temp1 temp1 temp2 break printf Now array a n for i 0 i 11 i printf 5d a i printf n printf 学号 20 姓名 吴琛 实验四第五题 运行结果 需要截图 运行结果分析 编辑程序运行即可 通过冒泡法编写 6 任务名称 输入十个互不相同的整数并存在数组中 找出最大元素 并删除 编程点拨 求最大值所在元素下标 不必用 max 记住最大值 只要用 k 记住最大值所在的元 素下标 删除最大值 从最大值开始将其后面元素依次前移一个位置 2 8 16 14 1 10 8 16 4 20 6 a 0123456789 下标 10 部分源代码 k 0 if a k a 1 真 k 1 执行 if a k a 2 假 k 2 不执行 if a k a 3 真 k 3 执行 相关知识 删除数组元素的概念 移动数组元素的算法 求最大值位置的算法 源代码 include void main int i k a 10 2 8 16 14 7 21 10 13 22 18 printf array a n for i 0 i 10 i printf 5d a i printf n k 0 for i 1 i 10 i if a k a i k i printf max d n a k while k 9 a k a k 1 k for i 0 i 9 i printf 4d a i printf n printf 学号 20 姓名 吴琛 实验四第六题 运行结果 需要截图 运行结果分析 根据结构图编写程序并输入程序运行即可 7 任务名称 以下程序的功能是 从键盘上输入若干个学生的成绩 统计计算出平均成绩 并输出 低于平均分的学生成绩 用输入负数结束输入 请填空 include void main float x 1000 sum 0 0 ave a int n 0 i printf Enter mark n scanf f while a 0 0 x n n scanf f ave printf Output n printf ave f n ave for i 0 i n i if printf f n x i 源代码 include void main int i n 0 sum 0 x 1000 float aver for scanf d if x n 1 break else sum sum x n n aver sum n printf aver f n aver for i 0 i n 1 i if x i aver printf d n x i printf 学号 20 姓名 吴琛 实验四第七题 运行结果 需要截图 运行结果分析 编辑程序 运行程序输出即可 8 任务名称 综合编程题 打印如下杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程点拨 杨辉三角形有如下特点 只有下半三角形有确定的值 第一列和对角线上的元素值都是 1 其它元素值均是前一行同一列元素与前一行前一列元素之和 源代码 include define N 6 int main int i j a N N for i 0 i N i a i i 1 a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年无人机操控员试题及答案
- 水力学期末考试复习题及答案
- 2025年飞机加油员技能鉴定模拟测试及答案
- 二 全面建设社会主义现代化国家教学设计-2025-2026学年高中思想政治高中习近平新时代中国特色社会主义思想学生读本
- 足球知识面试题库及答案
- 总帐会计面试题及答案
- 安全用药考试题及答案
- 安澜心理测试题及答案
- uk心理测试题目及答案
- 有线数字电视网络运营维护与客户服务合同
- 人参培训课件
- 四川省价建筑地下结构抗浮锚杆技术标准
- 2023年航空公司招聘:机场安检员基础知识试题(附答案)
- 糖尿病临床病例分析经典案例
- 老年人体检分析报告总结
- 第4课《用联系的观点看问题》第2框《在和谐共处中实现人生发展》-【中职专用】《哲学与人生》同步课堂课件
- 人工智能在个性化健康风险评估中的应用
- 计量安全防护
- 食品生物技术原理课件
- 制药工程专业导论
- 北京印刷学院《思想道德与法治》课教育教学情况管理类附有答案
评论
0/150
提交评论