c语言例题.ppt_第1页
c语言例题.ppt_第2页
c语言例题.ppt_第3页
c语言例题.ppt_第4页
c语言例题.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、习 题 课,一、个数的最大最小值问题,)直接比较(由大到小) 输入个数 if(ab) 则输出 a,c,b else 则输出 a,b,c,2)采用条件语句(ab)?a:b #include main() int a,b,c,temp,max,min; scanf(%d,%d,%dn, ,二、两个数的最小公倍数问题,最小公倍数就是两数乘积除以最大公约数 )辗转相除法 当两个数都较大时,采用辗转相除法比较方便其方法是: 以小数除大数,如果能整除,那么小数就是所求的最大公约数否则就用余数来除刚才的除数;再用这新除法的余数去除刚才的余数依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数

2、,例如:求4453和5767的最大公约数时,可作如下除法 576744531余1314 445313143余511 13145112余292 5112921余219 2922191余73 219733 于是得知,5767和4453的最大公约数是73然后用乘积除以最大公约数,从而得到做小公倍数。,辗转相除法适用比较广,比短除法要好得多,它能保证求出任意两个数的最大公约数 )缩倍法 如果两个数之间没有倍数关系,可以把两个数依次除以2、3、4直到求得的商是较大数的约数为止,#include main() int p,r,n,m,temp; scanf(%d,%d, ,#include main()

3、int a,b,t,i,p; scanf(%d,%d, ,三、数字塔问题,#include main() int i,j,n,k,ca=1; while(scanf(%d,for(k=0;k=2*i;k+) printf(%d,1+i); printf(n ); return 0; ,),#include void main() int i,j,k,n=0; while(scanf(%d,j+),printf( ); for(k=1;k=i;k+) printf(%2c,48+i); printf(n); ,),数字塔及 #include void main() int i,j,k; for(

4、i=1;i=9;i+) for(j=1;j=36-i;j+) printf( ); for(k=1;k=i;k+) printf(%2c,48+i); printf(n); ,for(i=10;i=35;i+) for(j=1;j=36-i;j+) printf( ); for(k=1;k=i;k+) printf(%2c,55+i); printf(n); ,题目:输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 #include main() int i,j,result; printf(n); for (i=1;i10;i+) for(j=1;j10;j+) r

5、esult=i*j; printf(%d*%d=%-3d,i,j,result); /*-3d表示左对齐,占3位*/ printf(n);/*每一行后换行*/ ,题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方5的三次方3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。,main() int i,j,k,n; printf(水仙花数是:); for(n=100;n1000,n+) i=n/100; j=n%100/10; k=n%10; if(n=i*i

6、*i+j*j*j+k*k*k) printf(%4d,n); printf(n); ,题目:判断101-200之间有多少个素数,并输 出所有素数。,main() int n,j,i,m=0; for(n=101; n=j+1) printf( %d,n); m = m + 1; if(m%10=0) /*m表示输入每10个数字一行,为了结果友好显示*/ printf(n); printf(n); ,题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。,main() int a,n,i=1

7、,sn=0,tn=0; printf(a,n=:); scanf(%d,%d, ,题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。,main() char c; int letter=0,space=0,digit=0,other=0; printf(请输入一行字符:n); while(c=getchar()!=n) if(c=a ,题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?,main() int i,j,k; printf(n); for(i=1;i5;i+)*以下为三重循环*/ for(j=1;j5;j+) for (k=1;

8、k5;k+) if (i!=k ,题目:企业发放的奖金根据利润提成。利润(I) 低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?,main() long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,b

9、onus; scanf(%ld,else if(i=600000) bonus=bonus4+(i-400000)*0.03; else if(i=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01; printf(bonus=%d,bonus); ,题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?,#include main() long int i,x,y,z; for (i=1;i100000;i+) x=sqrt(i+100); /*x为加

10、上100后开方后的结果*/ y=sqrt(i+268); /*y为再加上168后开方后的结果*/ if(x*x=i+100 ,已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。,v

11、oid jsVal() int i,j; int qw,bw,sw,gw; for (i=0;ibj) qw=bi;bi=bj;bj=qw; ,已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd=0且ab-cd=10且两个数均是奇数,同时两个新数的十位数字均不为零,

温馨提示

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

评论

0/150

提交评论