经典c语言例程39个例程(ClassicClanguageroutines,39routines)_第1页
经典c语言例程39个例程(ClassicClanguageroutines,39routines)_第2页
经典c语言例程39个例程(ClassicClanguageroutines,39routines)_第3页
经典c语言例程39个例程(ClassicClanguageroutines,39routines)_第4页
经典c语言例程39个例程(ClassicClanguageroutines,39routines)_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

经典c语言例程39个例程(ClassicClanguageroutines,39routines)[recommendedreading]classicClanguageroutines,atotalof39routines,748495575[program1]Title:1,2,3,4numbers,howmanydifferentnumberscanbeformedwithouteachotherandthreedigits?Howmucharethey?1.,programanalysis:canfillinonehundred,ten,anumberofdigitsare1,2,3,4.MakeupallthepermutationsandthengoAgramsourcecode:(main)IInt,I,J,k;Printf("\n");For(i=l;i<5;i++)For(j=l;j<5;j++)For(k=l;k<5;k++)If(I,=k&&i, =k!)Printf("%d,%d,%d\n”,I,J,K);))[program21Title:bonusespaidbyenterprisesarebasedonprofits.Whentheprofit(I)isbeloworequalto100thousandyuan,thebonuscanberaisedby10%;theprofitishighAt100thousandyuan,lessthan200thousandyuan,lessthan100thousandyuaninpart,accordingto10%Commission,higherthan100thousandyuaninpart,cocoamentionIn7.5%,between200thousandand400thousand,apercentageof200thousandyuanis5%Commission;between400thousandand600thousandishigher400thousandyuanpart,candeductapercentagefrom3%;between600thousandand1millionwhen,above600thousandyuanpart,candeductapercentageof1.5%,behigherthan1millionyuan,morethan1millionyuaninpart,accordingto1%Commission,fromthekeyboardinputmonthprofitsI,begshouldbeawardedbonustotal?programanalysis:pleaseuseafewaxestoboundaries,positioning.Whendefiningthedefinition,gramsourcecode:(main)(Longinti;Int,bonus1,bonus2,bonus4,bonus6,bonuslO,bonus;Scanf &i);Bonusl=100000*0.1;bonus2=bonus1+100000*0.75;Bonus4=bonus2+200000*0.5;Bonus6=bonus4+200000*0.3;Bonus10=bonus6+400000*0.15;If(i<=100000)Bonus=i*0.1;Elseif(i<=200000)Bonus=bonusl+(i-100000)*0.075;Elseif(i<=400000)Bonus=bonus2+(i-200000)*0.05;Elseif(i<=600000)Bonus=bonus4+(i-400000)*0.03;Elseif(i<=1000000)Bonus=bonus6+(i-600000)*0.015;ElseBonus=bonuslO+(i-1000000)*0.01;Printf("bonus=%d”,bonus);)[program31Title:aninteger,plus100,isaperfectsquare,plus168isaperfectsquarenumber.What'sthenumber?programanalysis:judgmentinlessthan100thousand,thenumberofthefirstand100aftertheroot,thenthenumberofplus268afterprescribing,ifafterprescribingTheresultsatisfiesthefollowingcondition,thatistheresult.Pleaseseetheconcreteanalysis:programsourcecode:ttinclude"math,h'”(main)(Long,int,I,x,y,z;For(i=l;i<100000;i++){x=sqrt(i+100);/*xwasaddedafterthe100afterprescribingresults*/Y=sqrt(i+268);/*yplus168Afterprescribingtheresults.If(x*x==i+100&&y*y==i+268)/*ifthesquarerootofanumberofthesquareisequaltothenumber,thisnumberisaperfectsquare.Printf("\n%ld\n",I);[program41Topic:enterayear,amonth,adate,todeterminethedayisthefirstfewdaysoftheyear?programanalysis:inMarch5th,forexample,shouldfirstaddupthefirsttwomonths,andthenplus5days,thatis,thefirstfewdaysoftheyear,specialIncaseofaleapyearandtheinputmonthisgreaterthan3,gramsourcecode:(main)IIntday,月,年,和,飞跃;printf(“请输入年,月,日”);scanf("%d,%d,%d“,&年&月&曰,);开关(月)/**/先计算某月以前月份的总天数案例1:总和=0;断裂;案例2:总和=31;断裂;案例3:总和=59;断裂;案例4:总和=90;断裂;案例5:总和=120;断裂;案例6:总和=151;断裂;案例7:总和=181;断裂;案例8:总和=212;断裂;案例9:总和=243;断裂;案例10:总和=273;断裂;案例11:总和=304;断裂;案例12:总和=334;断裂;默认值:printf(“数据错误”);休息;)金额=金额+天;/**/再加上某天的天数如果(%400=0(年%=4=0和年%100)!=0))/**/判断是不是闰年跳跃=1;其他的跳跃=0;如果(飞跃==1&&月〉2)/*如果是闰年且月份大于2,总天数应该加一天*/总和+;printf(“这是为潜孔锤天。”,总和);}5]【程序题目:输入三个整数X,Y,Z,请把这三个数由小到大输出。lo程序分析:我们想办法把最小的数放到X上,先将X与丫进行比较,如果x>y则将与的值进行交换XY,然后再用X与Z进行比较,如果X>Z则将X与Z的值进行交换,这样能使X最小。2O程序源代码:main()int,y,z,t;scanf("%d%d%dM,和X,和Y,和Z);如果(x){T=x;x=y;y=T;}/*交换X,Y的值*/如果(xz){T=Z;z=x;X=T;}/*交换X、Z的值*/如果(yz){T=Y;Y=Z;Z=T;}/*交换Z,丫的值*/printf(“小大:%d%d%d\nw,X,Y,Z);)6]【程序题目:用*号输出字母C的图案。lo程序分析:可先用“*”号在纸上写出字母C,再分行输出2o程序源代码:#包括“stdio.h”main()printf("Hello中际!"n);printf( );printf("\n”);printf(“\n”);printf(“*”);)7]【程序题目:输出特殊图案,请在C环境中运行,看一看,非常漂亮!1=程序分析:字符共有256个不同字符,图形不一样。2。程序源代码:#包括“stdio.h”main()chara=176,b=219;printf(“%%%%%CCCCN,B,A,A,A,B);printf( “% % % % % C C C C N“,A,B, A,B, A);printf( <(% % % % % C C C C , 一个,一个,B,A,A);printf( “% % % % % C C C C N”,A,B, A,B, A);printf( 4<% % % % % C C C C N, B,A,A,A,B);}8】【程序题目:输出9X9口诀。lo程序分析:分行与列考虑,共9行9列,我控制行,J控制列。2。程序源代码:#包括“stdio.h”main()(int,j,结果;printf("\n");对于(i=1;i<10;i+){(j=Lj<10;j++)结果=我;printf(rt%dX%a〜3D",I,J,结果);/*3D表示左对齐,占3位*/)printf("\n");/*每一行后换行*/})9]【程序题目:要求输出国际象棋棋盘。lo程序分析:用我控制行,J来控制列,根据i+j的的和的变化来控制输出黑方格,还是白方格。2O程序源代码:#包括“stdio.h"main()int,j;对于(i=0;i<8;i+){对于(j=0;j<8;j++)如果((i+j)%=2=0)printf("%c%c”,219219);其他的Printf("");Printf("\n");))[program10]Title:gramanalysis:useItocontrolrows,jtocontrolcolumns,andjtocontrolthenumberofoutputblacksquaresbasedonIgramsourcecode:ttinclude"stdio.h"(main)IInt,I,j;Printf("\l\l\n");/**/outputfacestwoFor(i=l;i<ll;i++)IFor(j=l;j<=i;j++)Printf(*%c%c*,219219);Printf("\n");))[program11]Title:classicalquestion:thereareapairofrabbits,frombirththirdmonthsfromthebeginningofeachmonthforapairofrabbits,rabbitsgrowtothirdmonthsEverymonthafteranotherpairofrabbits,iftherabbitdoesnotdie,askthetotalnumberofrabbitspermonthforhowmuch?programanalysis:thelawsoftherabbitseries1,1,2,3,5,8,13,21programsourcecode:(main)(Long,Fl,f2;Inti;Fl=f2=l;For(i=l;i<=20;i++){printf(为121d%121d”,Fl,F2);If(i%2==0)printf('\n");/*controloutput,fourperline.Fl=fl+f2;twomonthsago/adduptoassignthirdmonths.F2=fl+f2;twomonthsago/adduptoassignthirdmonths.[program12]Title:determinehowmanyprimestherearebetween101-200,gramanalysis:determinetheprimenumbermethod:withanumberof2tosqrtremoved(thisnumber),ifyoucanbedivisible,Itshowsthatthisnumberisnotaprimenumber,gramsourcecode:#include"math,h'”(main)IInt,m,I,K,h=0,leap=l;Printf("\n");For(m=101;m<=200;m++){k=sqrt(m+1);For(i=2;i<=k;i++)If(m%i==O){leap=O;break;}If(LEAP){printf("%-4d”,m);h++;If(h%10==0)Printf("\n");)Leap=l;Printf(\nThe,total,is,%d,H);[program13]Title:printoutallthenumbersofdaffodils.Whatiscalled“narcissusnumber"referstoathreedigitnumber,whosenumbersarecubicandequaltothenumberItself.Forexample:153isa“daffodils”,becausethreetimesthreetimesthreetimes5+3153=1.programanalysis:theuseofforcyclecontrol100-999numbers,eachdecompositionofanumberofbits,ten,100.programsourcecode:(main)IInt,I,J,K,n;Printf("''waterflower*,numberis:");For(n=100;n<1000;n++)II^n/100;/**/100decompositionJ=n/10%10;/**/tendecompositionK=n%10;/**/adecompositionIf(i*100+j*10+k==i*i*i+j*j*j+k*k*k)Printf("%-5d”,n);[program14]Title:factoringapositiveintegerintoaprimefactor.Forexample:enter90andprintout90=2*3*3*5.Programanalysis:whenfactoringtheN,weshouldfirstfindaminimumprimenumber,K,andthencompletethefollowingsteps:iftheprimenumberisexactlyn,theprocessoffactoringthequalityfactorisoverandprintedout.ifnOk,butncanbedivisiblebyK,youshouldprintoutthevalueofK,andusentodividethequotientofKasthenewpositiveinteger,youn,Repeatthefirststep.ifncannotbedivisiblebyK,usek+1asthevalueofKgramsourcecode:Intisdividedyinshu*//*Zheng(main)Printf("\npleaseinputanumber:\n,z);Scanf &n);printf("%d=",n);对于(i=2;i=n;i++)而(n)!=我)I如果(n=i=0){printf(“刎”,我);n=i;}其他的打破;printf("%d",N);}15]【程序题目:利用条件运算符的嵌套来完成此题:学习成绩)=90分的同学用一表示,60-89分之间的用B表示,60分以下的用C表示。lo程序分析:(a>b)?答:B这是条件运算符的基本例子。2o程序源代码:main()(智力评分;字符级;printf(“请输入一个分数\n");scanf("%d",得分);分数=>90?答:(得分=60?”B“:”"");16]【程序题目:输入两个正整数M和N,求其最大公约数和最小公倍数。lo程序分析:利用辗除法。2o程序源代码:main()Ia,b,numl,num2,温度;printf(“请输入两个数:\n");scanf("%d,%d”,与numl和num2,);如果(numl){温度=numl;numl=num2;num2=温度;=numl;乙=num2;而(b)!=0)/*利用辗除法,直到B为0为止*/(温度=-'%B;甲=乙;B=临时温度;)printf("gongyueshu:%d\n”,A);printf(ugongbeishu:%d\n”,numl*num2/);}17]【程序题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。lo程序分析:利用而语句,条件为输入的字符不为“\n”。2o程序源代码:#包括"stdio.h"main(){字符C;int字母=0,空格=0,数字=0,其他=0;printf("请输入一些字符\n");而((C=getchar())!="n"i如果(C〉=""&C〈=''z"C>="'&C<=''z")字母+;否则如果(c= ”)空间+;如果(C>="0"&C<="9”)数字+;其他的其他++;printf("总而言之:char=%d空间=%d%d位=人=%d\nM,信,空格、数字、其他);)18]【程序题目:求$=A++++AAAAAAAAAAA 的值,其中一是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。lo程序分析:关键是计算出每一项的值。2o程序源代码:main()(int,n,计数=1;长整型SN=0,TN=0;printf(“请输入一个n");scanf("%d,%d",&,&n);printf("=%d,N=%d\n”,A,N);同时(计算<=n)总氮;锡=锡;a=a*10;+计数;}printf("AA+…=%ld\n”,SN);)191【程序题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+编程3。1000以内的所有完数找出。lo程序分析:请参照程序《一一程序14。2O程序源代码:main()静态k[10];int,j,n,s;对于(j=2;j<1000;j++)[n=1;S=j;对于(i=1;i{如果((ji)=0){++;s=s;k=i;如果(s=0)为(i=0;我printf(“%d”,K);printf(“%d",K的[]);)))main()(静态k[10];int,j,n=0,s,m;对于(j=2;j<1000;j++){〃=1;s=j;S=SQRT(J);m=j;对于(i=1;i;s;++)如果((ji)=0)In+1;j=j/i;//;//S=S;如果(n=m)printf("%d个万树”,J);为(i-0;i<;;++)printf(“%d”,K);printf(“%d",K的[]);20]【程序题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?lo程序分析:见下面注释2o程序源代码:main()I浮动SN=100,HN=SN/2;intn;对于(n=2;n=10;n++)Sn=Sn+2XHN;/*第N次落地时共经过的米数*/HN=HN/2;/*第N次反跳高度*/)printf("总道路为fn,Sn);printf(“第十为F米\n”,HN);)其他的等整理出来再发!:):)21]【程序题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。lo程序分析:采取逆向思维的方法,从后往前推断。2o程序源代码:main()国际日,XI,x2;天=9;x2=1;当(日>0){XI=(X2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/x2=XI;天一;)printf("总%d\n”,XI);22]【程序题目:两个乒乓球队进行比赛,各出三人。甲队为A,B,C三人,乙队为X,Y,Z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。一说他不和X比,C说他不和X、Z比,请编程序找出三队赛手的名单。1。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。2。程序源代码:main()!焦的我,J,K;/我是一的对手,J是B的对手,K是C的对手*/对(我=''x'i<=''z'i++)为(J=''x'j<=''z'j++)(如果(i)!=J)为(k=''x'k<=''z'k++){如果(i)!=1<和J!=K){如果(i)!=''x'&K!=''x'&K!=''z")printf("秩序是——%C结核病——%CTCC\n",I,J,K);23]【程序题目:打印出如下图案(菱形)****xl**1*lo程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重对于循环,第一层控制行,第二层控制列。2o程序源代码:main()(int,j,k;对于(i=0;i<3;i++)I(J=0;J为<=2我;j++)printf(〃〃);for(k=0;k<=2*i;k++)printf("*");printf('\n");for(i=0;i<=2;i++)for(j=0,j<=i;j++)printf(〃“);for(k=0;k<=4-2*i;k++)printf('*");printf("\n");【程序24]题目:有一分数序列:2/1.3/2,5/3.8/5,13/8,21/13...求出这个数列的前20项之和.1.程序分析:请抓住分子与分母的变化规律.main()intn,t,number=20;floata=2,b=1,s=0;for(n=1;n<=number;n++)(s=s+a/b;t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/)printf("sumice%9.6f\n",s);【程序25]题目:求1+2!+3!+...+20!的和.程序分析:此程序只是把累加变成了累乘..程序源代码:main()Ifloatn,s=0,t=1;for(n=1;n<=20;n++)(t*=n;s+=t;)printf("1+2.+3!...+20!=%e\n”,s);【程序26]题目:利用递归方法求5!.2.程序源代码:#include“stdio.h"main(){inti;int(fact);for(i=0;i<5;i++)printf("\40:%d!=%d\n",infact(in));)intfact(j)intj;(intsum;if(y==0)elsesum=j*fact(j-1);returnsum;【程序27]题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来.L程序分析:2.程序源代码:#include"stdio.h"main()!inti=5;voidpalin(intn);printf("\40:");palin(in);printf("\n");)voidpalin(n)intn;(charnext;if(n==1)[==getchar();printf("\n\0:;putchar(next);else==getchar();palin(n-1);putchar(next);【程序28]题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后问第一个人,他说是10岁.请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段.要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推.age(n)intn;{intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);)main(){printf("%d”,age(5));【程序29]题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字..程序分析:学会分解出每一位数,Here'stheexplanation:(hereisasimplealgorithm,inthedivision,offeredbyclass002).programsourcecode:Main()[Long,a,B,C,D,e,x;Scanf("%ld",&x);A=x/100001/**/000decompositionB=x%10000/1000;/**/1000decompositionC=x%1000/100;/**/100decompositionD=x%l00/10;/**/tendecompositionE=x%10;/**/adecompositionIf(a,=0),printf(there,are5,%ld,%ld,%ld,%ld\n,%ld,e,D,C,B,a);Else,if(B,=0),printf(there,are4,%ld,%ld,%ld,%ld\n,e,D,C,B);Else,if(C,=0),printf(there,are3,%ld,%ld,%ld\n,e,D,C);Else,if(D,=0),printf("there,are2,%ld,%ld\n”,e,D);Else,if(E,=0),printf("therearel,%ld\n”,e);[program30]Title:a5digitnumbertodeterminewhetheritispalindrome.Thatis,12321isthepalindromenumber,thebitisthesameasthetens,gramanalysis:29casesprogramsourcecode:Main()ILong,Ge,Shi,Qian,Wan,x;Scanf &x);Wan=x/10000;Qian=x%10000/1000;Shi=x%100/10;Ge=x%10;If(ge==wan&&shi==qian)/*amillionandtenisequalto1000*/Printf("thisnumberisahuiwen'n");ElsePrintf("thisnumber,is,not,a,huiwen'n");)[program31]Title:Pleaseenterthefirstletteroftheweektodeterminewhatdayitis.Ifthefirstletteristhesame,continueJgramanalysis:itisbettertousethecasestatement.Ifthefirstletteristhesame,gramsourcecode:#includeVoid,main()Charletter;Printf(please,input,the,first,letter,of,someday\n);While((letter=getch)(=‘'Y'')/*!)whenthealphabetisYuntiltheend.{switch(letter){case''S'':printf("pleaseinputsecondletter\n");If((letter=getch())==''a'')Printf("saturday\n");Elseif((letter=getch())==''u'')Printf("sunday'n");Elseprintf("dataerror\n");Break;Case''F'':printf("friday\n");break;Case''M'':printf("monday'n");break;Case"'T'':printf("pleaseinputsecondletter'n");If((letter=getch())==''u'')Printf("tuesday'n");Elseif((letter=getch())==''h'')Printf("thursday'n");Elseprintf("dataerror\n/,);Break;Case''W'':printf("wednesday'n");break;Default:printf("dataerror\n");[program32]Title:Press,any,key,to,change,color,do,you,want,to,try,,it.,Please,hurry,up!programanalysis:programsourcecode:ttincludeVoidmain(void)IIntcolor;For(color=0;color<8;color++){Textbackground(color);/**/textbackgroundcprintf("这是彩色%d\r\nM,颜色);cprintf("按任意键继续\r\n");getchO;/**/输入字符看不见题目:学习gotoxyO与clrscr()函数lo程序分析:2o程序源代码:包括空主(空)(clrscr();/**/清屏函数设置文本的背景颜色(2);gotoxy(1,5);/*定位函数*/cprintf("输出排5柱1\n");设置文本的背景颜色(3);(20,10)gotoxy;cprintf("输出排10柱20\n”);题目:练习函数调用lo程序分析:2o程序源代码:包括hello_world虚空(void){printf(“你好,世界!"n);}three_hellos虚空(void)(int计数器;对于(计数器=1;计数器<=3;计数器+

温馨提示

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

评论

0/150

提交评论