实验五循环结构程序设计(周四晚).doc

上传人:自*** 文档编号:124930335 上传时间:2020-03-14 格式:DOC 页数:12 大小:106.50KB
返回 下载 相关 举报
实验五循环结构程序设计(周四晚).doc_第1页
第1页 / 共12页
实验五循环结构程序设计(周四晚).doc_第2页
第2页 / 共12页
实验五循环结构程序设计(周四晚).doc_第3页
第3页 / 共12页
实验五循环结构程序设计(周四晚).doc_第4页
第4页 / 共12页
实验五循环结构程序设计(周四晚).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《实验五循环结构程序设计(周四晚).doc》由会员分享,可在线阅读,更多相关《实验五循环结构程序设计(周四晚).doc(12页珍藏版)》请在金锄头文库上搜索。

1、姓名学号班级说明: 1. 完成以下实验内容后,将本文档改名为“学号_姓名_班级_Lab5.doc”;2. 在4月30日之前通过课程中心提交。实验内容和实验要求(上机指导P132)一、实验目的(1)掌握while语句、dowhile语句和for语句的格式和功能,能够用这些语句实现循环结构程序设计。(2)掌握循环语句嵌套使用的基本形式,能够用循环语句实现多重循环。(3)掌握在循环结构程序中使用break语句和continue语句改变程序流程的方法。(4)能够用循环实现累加、累成、穷举、迭代等常用算法。二、实验内容和实验要求1.练习题一输入两个正整数m和n,求其最大公约数和最小公倍数。其中最小公倍数

2、计算公式为:最小公倍数=m*n/最大公约数要求:(1) 最大公约数分别用辗转相除法和穷举法编程实现。程序代码(辗转相除法):#include#includevoid main()int x,y;int m,n,r;scanf(%d,%d,&x,&y);m=abs(x);n=abs(y);if(mn)r=m;m=n;n=r;dor=m%n;m=n; n=r;while(r!=0);printf(辗转相除法求最大公约数:%dn,m);printf(最小公倍数:%dn,abs(x)*abs(y)/m);程序代码(穷举法):#include#includevoid main()int x,y;int

3、m,n,r;scanf(%d,%d,&x,&y);m=abs(x);n=abs(y);if(m1)if(m%r=0&n%r=0)break;else r-;printf(穷举法求最大公约数:%dn,r);printf(最小公倍数:%dn,abs(x)*abs(y)/m);运行结果截图:思考题及问题:(1)分别按m的值大于n的值、m的值小于n的值两种情况输入数据,观察程序运行结果是否正确。答案:(2)分别输入m或n的值为负数,观察程序的运行结果。(3)试分析辗转相除法和穷举法的特点。2.练习题二用迭代法求x=a0.5。求平方根的迭代公式为: xn+1=0.5*(xn+a/xn)。要求:前后两次求

4、出x的差的绝对值小于10-6。程序代码:#include#includevoid main()float x,x0,x1;printf(Input x:n);scanf(%f,&x);x1=x/2;dox0=x1;x1=(x0+x/x0)/2;while (fabs(x0-x1)1e-6);printf(sqar of x is: %fn,x1);运行结果截图:思考题及问题:用%.6f表示练习题三:#includevoid main()int i,j;for(i=1;i=5;i+)for(j=1;j0;j-)printf(*);printf(n);printf(n);for(i=1;i=5;i

5、+)for(j=1;j0;j-)printf(*);printf(n);printf(n);for(i=1;i0;j-)printf( ); for(j=1;j=i;j+)printf(%d,2*j-1);printf(n);printf(n);for(i=1;i0;j-)printf( ); for(j=1;j=2*i-1;j+)printf(%c,A+i-1);printf(n);for(i=1;i=3;i+) for(j=1;j0;j-)printf(%c,D-i);printf(n);思考题及问题:思考题(1)如果输出10行的图形,应如何修改程序?#include/仅改了第一个图形vo

6、id main()int i,j;for(i=1;i=10;i+)for(j=1;j0;j-)printf(*);printf(n);(2)如果输出图形向右平移30个字符位置,程序应该如何修改?答案:#include/仅改了第一个图形void main()int i,j;for(i=1;i=5;i+)printf( );for(j=1;j0;j-)printf(*);printf(n);自测练习1. 自测练习一编写程序,输出各位数之和为9,且能被5整除的五位数的个数。思考:表述“n能被5整除”的条件表达式唯一吗?试写出2中以上。程序代码:#includevoid main()int a,b,c

7、,d,e,f,g,h,m,n,i;n=1;for(i=10008;i=90000;i+)a=i%10000;b=(i-a)%10000;c=a%1000;d=(b-c)%1000;e=c%100;f=(c-e)%100;g=e%10;h=(e-g)%10;m=b+d+f+h+g;if(m=9&!g%5)n+;else continue;printf(%dn,n);运行结果截图:思考答案:1!g%52. g%5=02. 自测练习二编写一个程序,从键盘输入一个数,将每一位数字转换为英文单词,入输入9815,则输出:nine,eight,one,five.源程序代码:#include #includ

8、e void main() int n,i=0,j,a; scanf(%d,&n); a=n ; while(a) a/=10; i+; printf(n是一个%d位数n,i); for( i-;i=0;-i) a=pow(10,i); j=n/a; switch (j) case 0:printf(ZERO);break; case 1:printf(ONE);break; case 2:printf(TWO);break; case 3:printf(THREE);break; case 4:printf(FOUR);break; case 5:printf(FIVE);break; ca

9、se 6:printf(SIX);break; case 7:printf(SEVEN);break; case 8:printf(EIGHT);break; case 9:printf(NINE);break; n=(n-j*a); printf( ); printf(n); 运行结果截图:3. 自测练习三编写程序,求s=1+(1+2)+(1+2+3)+.+(1+2+3+.+n)的值。源程序代码:#includevoid main()int i,j,n,m,a;a=0;scanf(%d,&n);for(i=1;i=n;i+)m=0;for(j=1;j=i;j+)m=m+j; a=a+m;pr

10、intf(%d,a); 运行结果截图:4. 自测练习四编写一个程序,输出101000之间所有的完全数。所谓完全数是指:该数的各因子之和正好等于该数本身,如6=1+2+3。源程序代码:#includevoid main()int i,j,m; for(i=10;i=1000;i+)m=1;for(j=2;ji;j+)if(i%j=0) m=m+j;if(m=i) printf(%dn,i);运行结果截图:5. 自测练习五某人摘下一些桃子,第一天,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又吃了一只;第三天、第四天、第五天都如此,第六天一看,发现就剩下一只桃子了。编写程序,采用迭代法,求某人共摘了多少只桃子。源程序文本:#includevoid main()int i=1,j;for(j=1;j=6;j+)i=2*(i+1);printf(%dn,i);运行结果截图:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 工业设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号