c语言循环结构上机习题解读

上传人:仙*** 文档编号:136824220 上传时间:2022-08-17 格式:DOC 页数:15 大小:230KB
返回 下载 相关 举报
c语言循环结构上机习题解读_第1页
第1页 / 共15页
c语言循环结构上机习题解读_第2页
第2页 / 共15页
c语言循环结构上机习题解读_第3页
第3页 / 共15页
点击查看更多>>
资源描述
1、计算 n 的阶乘 (n !),n 的取值在 110 之间。分别使用 while、dowhile 和for 语句实现。(三个程序)给循环变量赋初值循环条件循环体循环变量的增值2、输入一行字符,分别统计输入了多少个 字母、数字、空格和其他字符。3、假设函数 f(x)=3x 2+2x+1 ,试利用 for 循 环语句分别求出 1=xamax) amax=x ;if( ) amin=x ; scanf(%f,&x) ; printf(namax=%fnamin=%fn,amax,a min) ;7、使用循环语句输出以下图形8、有一个数学等式:AB*CD=BA*DC ,式中的一个字母代表一位数字, 试找出所有符合上述要求的乘积式并打印输出(12*63=21*36128421*4813*62=31*2614*82=41*282148=12*84236432462396=326924*63=42*3626*93=62*39284182*1431*26=13*6232*46=23*643486=43*6836*2163*1236*42=63*2436*84=63*4841*28=14*8242*3624*6343*68=34*8646*32=64*2348*63=84*3662*1326*3162*39=26*9363*12=36*216348=36*8464*2346*3268*43=86*3469*32=96*2384*12=48*2184*36486386*34=68*4393*26=39*62Press anij keyto continuec* C: Docuents and Sett ingsAdinist rat or桌面Debug 1. eze21*36=12*6326*31=62*1332*69=23*9639*62=93*2648*21=84*1263*24=36*4282*14=28*4196*23=69*328、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)分析: 这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为 X , y, z,问题化为 三元一次方程组:100=x*5+y*3+z/3100=x+y+z这里 x,y,z 为正整数,且 z 是 3 的倍数;由 于鸡和钱的总数都是 100 ,可以确定 x,y,z 的取值范围:1) x的取值范围为1202) y的取值范围为1333) z 的取值范围为 399,步长为 3 对于这个问题我们可以用穷举的方法, 遍历 x,y,z 的所有可能组合,最后得到问题的解。数据要求 问题中的常量:无 问题的输入:无 问题的输出: int x ,y,z /*公鸡、母鸡、小鸡的只数 */ 初始算法1初始化为 1 ;2 计算 x 循环,找到公鸡的只数;3 计算 y 循环,找到母鸡的只数;4 计算 z 循环,找到小鸡的只数; 5结束,程序输出结果后退出。算法细化算法的步骤 1 实际上是分散在程序之中的, 由于用的是 for 循环,很方便的初始条件放 到了表达式之中了。步骤 2 和 3 是按照步长 1 去寻找公鸡和母鸡 的个数。步骤 4 的细化4. 1 z = 14 2 是否满足百钱,百鸡4 2 1 满足,输出最终百钱买 到的百鸡的结果4 2 2 不满足,不做处理4 3 变量增加,这里注意步长为 3 程序代码如下#include stdio.hmain()int x,y,z;for(x=1;x=20;x+)for(y=1;y=33;y+)for(z=3;z=99;z+=3) if(5*x+3*y+z/3=100)&(x+y+z=100)/* 是 否 满 足 百 钱 和 百 鸡 的 条 件 */ printf(cock=%d,hen=%d,chicken=%dn ,x,y,z);分析程序运行结果如下:cock=4,hen=8,chicken=78cock=8,hen=11,chicken=81cock=12,hen=4,chicken=84 对于这个问题实际上可以不用三重循环, 而 是用二重循环,因为公鸡和母鸡数确定后, 小鸡数就定了,即。请同学们自己分析二重循环和三重循环的运行次数, 做为练习自己 调试这一方法程序修改:1、统计使用三重循环的循环次数Docusents and Sett ins?AdBinist rat or 0 0014=4,. lien 18 rchiclint mai n()int i1,i2,j1,j2,a,b,c,d;for(i1=11;i1v=99;i1+)for(j 1= i1+1;j1=99;j1+)a=i1/10;b=i1%10;c=j1/10;d=j1%10;if(a!=b&a!=c&a!=d&b!=c&b!=d& c!=d) i2=b*10+a;j2=d*10+c;if(i1*j1=i2*j2) printf(%d*%d=%d*%dt,i1,j1,i2,j2); return 0;#include void main()int a,b,c,d;for(a=1; a=9; a+)for(b=1; b=9; b+)for(c=a+1; c=9; c+) for(d=1; d=9; d+) dif(a*10+b)*(c*10+d)=(10*b+a)*(10*d+ c)if(a!=b)&(a!=c)&(a!=d)&(b!=c)& (b!=d)&(c!=d)printf(%d%d*%d%d=%d%d*%d%dt ,a,b,c,d,b,a,d,c);#includemain()int i, n,j=0;printf( 请输入一个整数 n:); scanf(%d ,&n);if(n=1&n=100)printf(1100 间可以被 %d 整除的数是: n,n);for(i=n;i=100;i+=n) printf(%-3d,i);j+;if(j%5=0)putchar(n);elseprintf( 输入错误! );#includeint main()int x,y;for(x=1;x=9;x+)y=3*x*x+2*x+1;printf(f(%d)=%dn,x,y);#includeint main()int n,m=0,i=0;printf( 求 1 到 100 之间可以被 n 整除的 整数 n);printf( 请输入整数 n :);scanf(%d,&n);if(n=1&n=100) while(m=100-n) m+=n;i+;printf(%3d,m);if(i%5=0)putchar(n);printf(n1 到 100 一共有 %d 个整数可以被%d 整除 n,i,n);elseprintf( 输入错误 );#includeint main()int letters=0,space=0,digit=0,others=0;char c;printf( 请输入一串字符: );for(;(c=getchar()!=n;)if(c=a&c=A&c=0&c=9)digit+;elseothers+;printf(你一共输入了 %d个字母,%d个空格,%d个数字, %d 个其它字符 n,letters,space,digit,others);使用数组#includestring.h#includevoid main()int k; static char st1; gets(st); k=strlen(st);printf(%d,k);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!