全文预览

实验四 结构化程序设计

上传者:学习一点 |  格式:doc  |  页数:6 |  大小:0KB

文档介绍
的任何完数。通过观察图 4-1 中所示的错误程序在 TC2.0 的调试状态下变量 i=5 时 sum 的值可以分析出 sum 的初值设定位置有问题,请思考原因并修改。图 4-1 TC2.0 程序调试界面 6 .本题分两部分考虑,第一部分为寻找适合的输入,第二部分为根据满足条件的数进行变化处理后输出。寻找合适的输入一般使用 do-while 语句,形式为: do{ 输入对输入后的数进行处理}while( 输入的数不满足条件的表达式); 找到合适的数后即进行第二部分的操作。这部分的一个关键问题是如何设置循环条件, 本题是从一个三位数到三位黑洞数 495 的变化, 并且变化次数不超过 7次, 所以在变化数不等于 495 并且次数不超过 7 次时不断执行循环。另外寻找某个三位数上各位数字排列成的最大数和最小数,简单的方法是将该数的各位数字分离存入变量 a、b和c 中,然后对三个变量进行排序(此处涉及数的交换算法) ,使 a 中保存三个变量中的最大值, c 中保存三个变量中的最小值,然后再计算出变化后的最大数和最小数。 7.对n 进行质因子分解,应从最小的质数 k =2 开始,然后按下述步骤完成: ⑴如果 k恰好等于 n 则说明分解质因子的过程已经结束, 输出并结束程序; ⑵如果 n 不等于 k且能被 k 整除, 则应输出出k 的值,并且n/k→n, 重复执行第⑵步。否则执行下一步; ⑶ k+1 →k ,转到第⑴步执行。编程中要注意步骤⑵的执行,当n 不等于k且能被k 整除时先输出k 的值,并且 n=n/k , 此时不能直接执行第⑶步的 k=k+1 ,因为有可能 k 仍然是 n/k 的因子。所以本题应该用两重循环来实现, 外循环让 k从2 遍历到 n, 内循环对于每个 k 进行多次判断看其是否是 n或者整除过一次或几次 k 后的新的 n 的因子,如果不是因子再将 k加1 后继续判断。

收藏

分享

举报
下载此文档