c语言循环结构上机习题_第1页
c语言循环结构上机习题_第2页
c语言循环结构上机习题_第3页
c语言循环结构上机习题_第4页
c语言循环结构上机习题_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、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,amin) ;7、使用循环语句输出以下图形8、有一个数学等式:AB*CD=BA*D,C式中的一个字母代表一位数字,试找出所有符合上述 要求的乘积

2、式并打印输出。8、一百个铜钱买了一百只鸡,其中公鸡一只 5钱、母鸡一只 3 钱,小鸡一钱 3只,问一百 只鸡中公鸡、母鸡、小鸡各多少) 。分析:这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x, y,z,问题化为三元一次方程组:100=x*5+y*3+z/3 100=x+y+z这里 x,y,z 为正整数,且 z 是 3 的倍数;由于鸡和钱的总数都是100,可以确定 x,y,z 的取值范围:1) x的取值范围为1202) y的取值范围为1333) z 的取值范围为 3 99,步长为 3对于这个问题我们可以用穷举的方法,遍历 x,y,z 的所有可能组合,最后得到问题的解。 数据要求问题中

3、的常量:无问题的输入:无问题的输出: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程序代码如下

4、#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=81 cock=12,hen=4,chicken=84 对于这个问题实际上可以不用三重循环,而是用二重循环,因为公鸡和母

5、鸡数确定后,小 鸡数就定了,即。请同学们自己分析二重循环和三重循环的运行次数,做为练习自己调试 这一方法。程序修改:1 、 统 计使用三重循环的循环次数2 、 使 用二重循环完成,并统计循环次数#include int main()int i1,i2,j1,j2,a,b,c,d;for(i1=11;i1=99;i1+)for(j1=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*

6、%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:

7、);scanf(%d ,&n);if(n=1&n=100)printf(1100间可以被d整除的数是:n,n);for(i=n;ia沛一)ttinc-udeAsfdio.hv inf main。 宀inf xyforxHlXAH9X+)宀 yH3*x*x+2*x+l 八 prinff(=f(dH%2n=1&n=100) while(m=100-n) m+=n;i+;printf(%3d,m);if(i%5=0)putchar(n);printf(n1 至U 100一共有c个整数可以被c整除n,i,n);elseprintf( 输入错误 );#include int 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+;%d 个其它字符printf( 你一共输入了 %d个字母,%d个空格,%d个数字,n,letters

温馨提示

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

最新文档

评论

0/150

提交评论