循环结构算法举例

循环结构算法举例

ID:33676148

大小:64.50 KB

页数:7页

时间:2019-02-28

循环结构算法举例_第1页
循环结构算法举例_第2页
循环结构算法举例_第3页
循环结构算法举例_第4页
循环结构算法举例_第5页
资源描述:

《循环结构算法举例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、循环结构算法举例1、编程输出1至100之间所有能被17整除的自然数(要求使用continue语句)算法分析:如果自然数i被17整除,予以输出,否则不输出源程序1:#includevoidmain(){inti;for(i=1;i<=100;i++)if(i%17==0)printf("%4d",i);printf("");}源程序2:(withContinue)#includevoidmain(){inti;for(i=1;i<=100;i++){if(i%17!=0)c

2、ontinue;printf("%4d",i);}printf("");}1、求100之内能被17整除的最大自然数(要求使用break语句)算法分析1:如果自然数i(i=1,2,…,100)被17整除且大于其他能被17整除的自然数,保存下来,循环结束时予以输出源程序1:#includevoidmain(){inti,max=0;for(i=1;i<=100;i++)if(i%17==0&&i>max)max=i;printf("%d",max);}算法分析2:为了提高程序的效率,减少循

3、环的次数,让自然数i从最大值100开始。如果自然数i被17整除,输出i后提前结束循环源程序2:(withbreak)#includevoidmain(){inti,max=0;for(i=100;i>=1;i--)if(i%17==0){printf("%d",i);break;}}1、编程打印出下列图案:******************************************算法分析:(1)该图案共9行,每行由空格’’、星号’*’、换行’’组成(2)第1至第5行的空格呈递

4、减趋势(4,3,2,1,0),即每行的数量等于5-i;而’*’呈增加趋势(1,3,5,7,9),即每行的数量等于2i-1;(3)第6至第9行的空格呈增加趋势(1,2,3,4),即每行的数量等于i-5;而’*’呈减少趋势(7,5,3,1),即每行的数量等于2(9-i)+1;(4)每行末尾都是1个换行符源程序:#includevoidmain(){inti,j;for(i=1;i<=5;i++){//先输出1~5行for(j=1;j<=5-i;j++)putchar('');//先输出5-i个空格

5、for(j=1;j<=2*i-1;j++)putchar('*');//再输出2i-1个*putchar('');//行尾换行}//此时i的值为6for(;i<=9;i++){//再输出6~9行,for(j=1;j<=i-5;j++)putchar('');//先输出i-5个空格for(j=1;j<=2*(9-i)+1;j++)putchar('*');//再输出2(9-i)+1个*putchar('');//行尾换行}}思考:(1)本程序中使用函数putchar()实现字符输出,如果使用printf(

6、),括号内的参数使用单引号还是双引号?(2)第二个for循环的表达式1是空的,为什么?(3)如果把第二个for循环改成如下形式,循环体应该怎样更改?for(i=4;i>=1;i--){/*请在此处填写循环体语句*/}分析下列程序的输出结果:#includevoidmain(){inti=-1,j=3,c;do{c=(++i<0)&&!(--j==0);i++;}while(c);//当C非0时循环printf("%d,%d",i,j);}结果:1,3分析:循环次数ijc0-13未知1130

7、首先执行++i,令i由-1增为0,表达式++i的值亦为0关系运算++i<0的值为0,故运算&&的结果为0,c的值为0!(--j==0)是&&的第二操作数,在已经明确&&结果为0时不再计算,因此j的值没有减1,由于do-while语句的循环条件是c,即c!=0,而当第一次循环结束时c为0,故结束循环输入两个正整数m和n,求最大公约数和最小公倍数。算法分析:(1)当输入值m<=0或n<=0,重新输入m和n。(2)令p取m,n中较大者,q取m,n中较小者.(3)p作被除数,q作除数,再令r代表两者的余数(r=p%q)

8、,当p不能被q整除时(r!=0),调整p和q:p=q;q=r;循环中如果r为0,则当前的除数q就是m和n的最大公约数例1:pqr=p%q24120例2:pqr=p%q1486862620(4)已知原整数m,n和它们的最大公约数p,其最小公倍数为m*n/p。源程序#includevoidmain(){intm,n,p,q,r;printf("Inputtwoplusnu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。