第二次上机实验内容-正整数排序求平均值_第1页
第二次上机实验内容-正整数排序求平均值_第2页
第二次上机实验内容-正整数排序求平均值_第3页
第二次上机实验内容-正整数排序求平均值_第4页
第二次上机实验内容-正整数排序求平均值_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

正整数排序求平均值 包括将数拆散 求最大最小值 上机整数分离 排序212223 选一个题 47484996979899数字重新组合 选一个题 50535471727378100 选一个题 下面是典型例题的解题方法 已知数据文件IN DAT中存有300个四位数 并已调用读函数readDat 把这些数存入数组a中 请编制一函数jsValue 其功能是 求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt 再把所有满足此条件的四位数依次存入数组b中 然后对数组b的四位数按从大到小的顺序进行排序 最后main 函数调用写函数writeDat 把数组b中的数输出到文件OUT DAT中 例如 7153 7 1 5 3 则该数满足条件存入数组b中 且个数cnt cnt 1 8129 8 1 2 9 则该数不满足条件忽略 注意 部分源程序存在文件PROG1 C文件中 程序中已定义数组 a 300 b 300 已定义变量 cnt请勿改动数据文件IN DAT中的任何数据 主函数main 读函数readDat 和写函数writeDat 的内容 04套 对300个数都要进行判断 可以用循环实现每次循环要解决整数的数字分离问题然后对分离的数字进行判断 满足条件的进行记数 同时把该整数存入另一个数组b中循环结束后 数组b中已经有了数据 然后进行从大到小排序 编程点拨 代码 jsValue inti j qw bw sw gw tmp for i 0 i 300 i 循环实现 对a数组中的300个数据都进行判断 a i 进行数字分离 个位gw 十位sw 百位bw 千位qw gw a i 10 sw a i 10 10 bw a i 100 10 qw a i 1000 个位gw 十位sw 百位bw 千位qw进行判断 if qw bw sw gw 0 b cnt a i b数组进行排序 cnt为数据中元素的个数 for i 0 i cnt 1 i for j i 1 j cnt j if b i b j tmp b j b j b i b i tmp 已知数据文件IN DAT中存有200个四位数 并已调用读函数readDat 把这些数存入数组a中 请考生编制一函数jsVal 其功能是 把个位数字和千位数字重新组成一个新的含有两位数字的数 新数的十位数字是原四位数的个位数字 新数的个位数字是原四位数的千位数字 以及把百位数字和十位数字组成另一个新的含有两位数字的数 新数的十位数字是原四位数的百位数字 新数的个位数字是原四位数的十位数字 如果两个新组成的数均是偶数并且至少有一个数能被9整除 同时两个新数的十位数字均不为零 则将满足此条件的四位数按从大到小的顺序存入数组b中 并要计算满足上述条件的四位数的个数cnt 最后main 函数调用写函数writeDat 把结果cnt以及数组b中符合条件的四位数输出到OUT DAT文件中 注意 部分源程序存在文件PROG1 C文件中 程序中已定义数组 a 200 b 200 已定义变量 cnt请勿改动数据文件IN DAT中的任何数据 主函数main 读函数readDat 和写函数writeDat 的内容 47套 voidjsVal intqw bw sw gw i newV1 newV2 j for i 0 i MAX i for i 0 i cnt 1 i for j i 1 j cnt j if b i b j newV1 b j b j b i b i newV1 编程点拨 循环实现 对a数组中的数据都进行判断 循环次数MAX 对a i 进行数字分离 qw a i 1000 gw a i 10 bw a I 100 10 sw a I 10 10 个位 千位组成新数 百位和十位组成新数 newV1 gw 10 qw newV2 bw 10 sw 条件满足记数和保存到b数组中 gw和bw都不为O 两个新数都为偶数 有一个书被9整除 if gw 对b数组排序 例 程序PROG1 C的功能是 计算出自然数SIX和NINE满足条件SIX SIX SIX NINE NINE的个数cnt 以及满足此条件所有的SIX与NINE的和SUM 请编写函数countValue 实现程序的要求 最后main 函数调用函数writeDAT 把结果cnt和sum 输出到文件OUT DAT中 其中的S I X N E各代表一个十进制数字 允许代表的数字相同 但S和N不能为0 例如 944 944 944 1416 1416注意 部分源程序存放在PROG1 C中 请勿改动主函数main 和输出数据函数writeDAT 的内容 02套 S I X N E分别取1 9之间的任意一个数可以用穷举法来表示SIX和NINE两个数 编程点拨 for s 1 s 10 s for i 0 i 10 i for x 0 x 10 x for n 1 n 10 n for e 0 e 10 e six s 100 i 10 x nine n 1000 i 100 n 10 e 代码 例9 2 PROG1 C文件的内容如下 includeintcnt sum voidcountValue voidmain cnt sum 0 countValue printf 满足条件的个数 d n cnt printf 满足条件所有的SIX与NINE的和 d n sum writeDAT 例9 2 writeDAT FILE fp fp fopen OUT DAT w fprintf fp d n d n cnt sum fclose fp 例9 2 答案 voidcountValue ints i x n e six nine for s 1 s 10 s for i 0 i 10 i for x 0 x 10 x for n 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论