c語(yǔ)言實(shí)例開發(fā)_第1頁(yè)
c語(yǔ)言實(shí)例開發(fā)_第2頁(yè)
c語(yǔ)言實(shí)例開發(fā)_第3頁(yè)
c語(yǔ)言實(shí)例開發(fā)_第4頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

二、實(shí)例開發(fā)用C語(yǔ)言解決鬼谷算題在鬼谷算題中有這樣ー個(gè)著名的題目:“今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問(wèn)物幾何?”這屬于高等數(shù)學(xué)中的數(shù)論。我國(guó)宋代學(xué)者對(duì)這類題目鉆研已頗為精深,總結(jié)出了“三人同行七十稀,五樹梅花廿一枝,七子團(tuán)圓正半月,去百零五便得知?!边@樣的口訣,意思是說(shuō)“以三三數(shù)之,余數(shù)乘以七十:五五數(shù)之,余數(shù)乘以二十一;七七數(shù)之,余數(shù)乘十五。三者相加,如不大于ー百零五,即為答數(shù);否則須減去ー百零五或其倍數(shù)?!边@道算題的答案為23。計(jì)算起來(lái)比較繁瑣,但如果用我們所熟悉的C語(yǔ)言來(lái)編寫?小段程序的話,很快就能解決。這段程序如下:#include"stdio.h"mainintxforx=0x<100x++??ifx%3==2&&x%5==3&&x%7==2printf"Thisnumberis%d\n"x看ー看,是不是很簡(jiǎn)單啊!用C語(yǔ)言實(shí)現(xiàn)的鬧鐘程序#include#include#include#include#includevoidmain()intgd二DETECT,gm;intx=320,y=240,r=200,i,h,m,s,thetamin,thetasec;structtimet;charn[l2][3]={“3“,“2“,“ド,“12”,“1ド,“ J8 ;initgraph(&gd,&gm「g:\\tc\\bgi”)ル圖形驅(qū)動(dòng)器路徑,根據(jù)自己的系統(tǒng)更換。circle(x,y,210);setcolor(4);settextstyle(4,0,5);for(i=0;i<12;i++)(if(i!=3)outtextxy(x+(r-14)*cos(M_PI/6*i)-10,y-(r-14)*sin(M_PI/6*i)-26,n[i]);elseouttextxy(x+(r-14)*cos(M_PI/6*i)-20,y-(r-14)*sin(M_PI/6*i)-26,n[i]);}gettime(&t);printf(nThecurrenttimeis:%2d:%02d:%02d.%02d\nn,t.ti_hour,t.ti_min,t.ti_sec,t.ti_hund);while(!kbhit())(setcolor(5);setfillstyle(l,5);circle(x,y,10);floodfill(x,y,5);gettime(&t);if(t.ti_min!=m)(setcolor(O);line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180)));circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180))JO);line(x,y,x+(r-110)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-110)*sin(M_PI/6*h-((m/2)*(M_PI/180))));circle(x+(r-130)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-((m/2)*(M_PI/180))),10);)if(t.ti_hour>12)t.ti_hour=t.ti_hour-12;if(t.ti_hour<4)h=abs(t.ti_hour-3);else h=15-t.ti_hour;if(t.ti_min<=15)thetamin=(15-t.ti_min)*6;elsethetamin=450-t.ti_min*6;if(t.ti_sec<=15)thetasec=(15-t.ti_sec)*6;elsethetasec=450-t.ti_sec*6;setcolor(4);line(x,y,x+(r-l10)*cos(M_PI/6*h-((m/2)*(M_PI/l80))),y-(r-l10)*sin(M_PI/6*h-((m/2)*(M_PI/180))));circle(x+(r-l30)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-((m/2)*(M_PI/180))),10);line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180)));circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180)),10);setcolor(15);line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180

)));delay(lOOO);setcolor(O);line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180)));})該程序已在TurboC++3.0中通過(guò)編譯.C程序開發(fā)經(jīng)典實(shí)例之一[程序1]題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少?.程序分析:可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。.程序源代碼:main(){inti,j,k;printf("\n");/?/?以下為三重循環(huán)?/for(j=l;j<5;j++)for(k=l;k<5;k++)if(i!=k&&i!=j&&j!=k)/if(i!=k&&i!=j&&j!=k)/?確保i、j、k三位互不相同?/})【程序2】題目:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(I)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可可提成7.5%;20萬(wàn)到40萬(wàn)之間時(shí),髙于20萬(wàn)元的部分,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)高于40萬(wàn)元的部分,可提成3%;60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%,高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?.程序分析:請(qǐng)利用數(shù)軸來(lái)分界,定位。注意定義時(shí)需把獎(jiǎng)金定義成長(zhǎng)整型。.程序源代碼:main(){longinti;intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf(n%ld*\&i);bonus1=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=bonus44-(i-400000)*0.03;elseif(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-l000000)*0.01;printf(,'bonus=%d,\bonus);}【程序3】題目:ー個(gè)整數(shù),它加上】00后是ー個(gè)完全平方數(shù),再加上168又是ー個(gè)完全平方數(shù),請(qǐng)問(wèn)該數(shù)是多少?.程序分析:在10萬(wàn)以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果。請(qǐng)看具體分析:.程序源代碼:#include"math.h"main()(longinti,x,y,z;for(i=I;i<100000;)++){x=sqrt(i+100); /*x為加上100后開方后的結(jié)果?/y=sqrt(i+268); /*y為再加上168后開方后的結(jié)果?/if(x*x==i+100&&y*y==i+268)/*如果ー個(gè)數(shù)的平方根的平方等于該數(shù),這說(shuō)明此數(shù)是完全平方數(shù)?/【程序4】題目:輸入某年某月某日,判斷這一天是這一年的第幾天?.程序分析:以3月5日為例,應(yīng)該先把前兩個(gè)月的加起來(lái),然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時(shí)需考慮多加一天。.程序源代碼:main(){intday,month,year,sumJeap;printf(H\npleaseinputyear,month,day\n");scanf(n%d,%d,%d,',&year,&month,&day);switch(month)/?先計(jì)算某月以前月份的總天數(shù)?/(casel:sum=O;break;case2:sum=31;break;case3:sum=59;break;case4:sum=90;break;case5:sum=120;break;case6:sum=151;break;case7:sum=181;break;case8:sum=212;break;case9:sum=243;break;case10:sum=273;break;case1l:sum=304;break;case12:sum=334;break;default:printf(Mdataerror'1);break;}sum=sum+day; /?再加ヒ某天的天數(shù)?/if(year%400==0ll(year%4==0&&year%100!=0))/?判斷是不是閏年?/leap=l;elseleap=0;if(leap==l&&month>2)/?如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天?/sum++;printf("Itisthe%dthday.",sum);}【程序5】題目:輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出。.程序分析:我們想辦法把最小的數(shù)放到x上,先將x與y進(jìn)行比較,如果x>y則將x與y的值進(jìn)行交換,然后再用x與z進(jìn)行比較,如果x>z則將x與z的值進(jìn)行交換,這樣能使x最小。.程序源代碼:main(){intx,y,z,t;scanf("%d%d%d",&x,&y,&z);if(x>y){t=x;x=y;y=t;}/?交換x,y的值?/{t=z;z=x;x=t;}/?交換x,z的值?/if(y>z){t=y;y=z;z=t;}/*交換z,y的值?/printf("smalltobig:%d%d%d\n",x,y,z);)【程序6】題目:用?號(hào)輸出字母C的圖案。.程序分析:可先用‘*,號(hào)在紙ヒ寫出字母C,再分行輸出。.程序源代碼:#include"stdio.h"main(){printf(nHeUoC-world!\nM);printf("****\n”);printf("*\ボ);printf(M*\nu);printf(u****\n”);}【程序7】題目:輸出特殊圖案,請(qǐng)?jiān)赾環(huán)境中運(yùn)行,看一看,VeryBeautiful!.程序分析:字符共有256個(gè)。不同字符,圖形不ー樣。.程序源代碼:#include"stdio.h"main(){chara=176,b=219;printf(,'%c%c%c%c%c\n,\b,a,a,a,b);printf(,'%c%c%c%c%c\n,\a,b,a,b,a);printf(,'%c%c%c%c%c\n,\a,a,b,a,a);printf(u%c%c%c%c%c\nH,a,b,a,b,a);printf(,,%c%c%c%c%c\n,,,b,a,ata,b);)【程序8】題目:輸出9*9口訣。.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。.程序源代碼:#include"stdio.h"main(){intij,result;primf(ヽ”);for(i=l;i<10;i++){for(j=l;j<10;j++)result=i*j;printf("%d*%d=%-3d”,i,j,result);/*-3d表示左對(duì)齊,占3位?/}printf("\n");/*每,一行后換行?/)}【程序9】題目:要求輸出國(guó)際象棋棋盤。.程序分析:用i控制行,j來(lái)控制列,根據(jù)i+j的和的變化來(lái)控制輸出黑方格,還是白方格。.程序源代碼:include"stdio.h"main()(intij;for(i=0;i<8;i++){for(j=0;j<8;j++)if((i+j)%2==0)prinlf("%c%c”,219,219);elseprintf(HM);printf(',\nn);}}題目:打印樓梯,同時(shí)在樓梯上方打印兩個(gè)笑臉。.程序分析:用i控制行,j來(lái)控制列,j根據(jù)i的變化來(lái)控制輸出黑方格的個(gè)數(shù)。.程序源代碼:#include"stdio.h"main(){inti,j;printf("\l\l\n");/?輸出兩個(gè)笑臉?/for(i=l;i<lI;i++)(for(j=l;j<=i;j++)printf("%c%c",219,219);printf("\n");)}C程序開發(fā)經(jīng)典實(shí)例之二【程序11]題目:古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問(wèn)每個(gè)月的兔子總數(shù)為多少?1.程序分析:兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....main()longfl,f2;inti;fl=f2=l;for(i=l;i<=20;i-H-){printf(M%121d%121dM,fl,f2);if(i%2==0)printf("\n");/*控制輸出,每行四個(gè)?/fl=fl+f2;/?前兩個(gè)月加起來(lái)賦值給第三個(gè)月?/

f2=fl+f2;/?前兩個(gè)月加起來(lái)賦值給第三個(gè)月?/|【程序I2]題目:判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。.程序分析:判斷素?cái)?shù)的方法:用ー個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。.程序源代碼:#include"math.h"main()intm,i,k,h=0,leap=l;printf("\n");for(m=101;m<=200;m++){k=sqrt(m+l);for(i=2;i<=k;i++)if(m%i==O){leap=O;break;}if(leap){printf(M%-4d,',m);h++;if(h%10==0)printf(,,\nH);)leap=l;}printf("\nThetotalis%d'\h);}【程序13]題冃:打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指ー個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)“水仙花數(shù)”,因?yàn)?53=1的三次方+5的三次方+3的三次方。.程序分析:利用for循環(huán)控制100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。.程序源代碼:main(){inti,j,k,n;printf(H'waterflowefnumberis:");for(n=100;n<1000;n++)i=n"00;/?分解出百位*/j=n/10%10;/?分解出十位?/k=n%10;/?分解出個(gè)位?/if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)(printf("%-5d",n);})printf("\n");【程序14]題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。程序分析:對(duì)n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到ー個(gè)最小的質(zhì)數(shù)k,然后按下述步驟完成:(1)如果這個(gè)質(zhì)數(shù)恰等于n,則說(shuō)明分解質(zhì)因數(shù)的過(guò)程已經(jīng)結(jié)束,打印出即可。(2)如果nok,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。(3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。/*zhengintisdividedyinshu*/main()|intn,i;printf(H\npleaseinputanumber:\nn);scanf("%d”,&n);printf(M%d=M,n);for(i=2;i<=n;i++){while(n!=i){if(n%i=O){printf(H%d*M,i);n=n/i;}elsebreak;}printf("%d",n);}【程序I5]題目:利用條件運(yùn)算符的嵌套來(lái)完成此題:學(xué)習(xí)成績(jī)>=90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。1.程序分析:(a>b)?a:b這是條件運(yùn)算符的基本例子。main()intscore;chargrade;printf(Hpleaseinputascore\n");scanf("%dn,&score);grade=score>=90?'A,:(score>=60?,B,:,C);printf(H%dbelongsto%c",score,grade);【程序16]題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。.程序分析:利用根除法。.程序源代碼:main()(inta,b,num1,num2,temp;printf(npleaseinputtwonumbers:\nu);scanf(,,%d,%d",&num1,&num2);if(numl{temp=numl;numl=num2;num2=temp;}a=numl;b=num2;while(b!=O)/?利用輾除法,直到b為〇為止?/(temp=a%b;a=b;b=temp;)printf("gongyueshu:%d\n,',a);printf(,'gongbeishu:%d\n'\numl*num2/a);}【程序17]題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。.程序分析:利用while語(yǔ)句,條件為輸入的字符不為'イ.程序源代碼:#include"stdio.h"main(){charc;intletters=0,space=0,digit=0,olhers=0;printfC'pleaseinputsomecharacters\nM);while((c=getchar())!=,\n,)if(c>=,a,&&c<=,z,llc>='A'&&c<=,Z')letters++;elseif(c='')space++;elseif(c>='0'&&c<=,9,)digit++;elseothers++;)printf(nallinall:char=%dspace=%ddigit=%dothers=%d\nH,letters,space,digit,others);}【程序18]題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是ー個(gè)數(shù)字。例如2+22+222+2222+22222(此時(shí)共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加有鍵盤控制。.程序分析:關(guān)鍵是計(jì)算出每ー項(xiàng)的值。.程序源代碼:main(){inta,n,count=l;longintsn=0,tn=0;printf("pleaseinputaandn\nH);scanf(M%d,%dn,&a,&n);printf(,'a=%d,n=%d\n,1,a,n);while(count<=n){tn=tn+a;sn=sn+tn;a=a*10;++count;}printf("a+aa+...=%ld\n",sn);}【程序I9]題目:ー個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如6=1+2+3.編程找出1000以內(nèi)的所有完數(shù)。.程序分析:請(qǐng)參照程序ぐ-上頁(yè)程序14..程序源代碼:main(){staticintk[10];inti,j,n,s;for(j=2;j<1000;j++){n=-l;s=j;for(i=l;i{if((j%i)==O){n++;s=s-i;k[n]=i;))if(s==O){printf("%disawanshu",j);for(i=0;iprintf("%d,",k[i]);printf("%d\n",k[n]);}}}【程序20]題目:ー球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多高?.程序分析:見下面注釋.程序源代碼:main(){floatsn=100.0,hn=sn/2;intn;for(n=2;n<=10;n++)sn=sn+2*hn;/?第n次落地時(shí)共經(jīng)過(guò)的米數(shù)?/hn=hn/2;/*第n次反跳高度?/}printf("thetotalofroadis%f\n",sn);printf("thetenthis%fmeter\n",hn);)C程序開發(fā)經(jīng)典實(shí)例之三【程序21]題目:猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了ー個(gè),第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見只剩下ー個(gè)桃子了。求第一天共摘了多少。.程序分析:采取逆向思維的方法,從后往前推斷。.程序源代碼:main()(intday,xl,x2;day=9;x2=l;while(day>0){xl=(x2+l)*2;/*第一天的桃子數(shù)是第2天桃子數(shù)加1后的2倍?/x2=xl;day—;printf("thetotalis%d\n",xl);}【程序22]題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單。有人向隊(duì)員打聽比賽的名單。a說(shuō)他不和x比,c說(shuō)他不和x,z比,請(qǐng)編程序找出三隊(duì)賽手的名單。.程序分析:判斷素?cái)?shù)的方法:用ー個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。.程序源代碼:main()(chari,j,k;/*i是a的對(duì)手,j是b的對(duì)手,k是c的對(duì)手?/for(i=,x';i<='z';i++)for(j='x,;j<=,z';j++){if(i!=j)for(k=,x,;k<=,z';k++){if(i!=k&&j!=k){if(i!='x,&&k!='x,&&k!=,z,)printf(uorderisa—%c\tb—%c\tc—%c\nM,i,j,k);【程序23]題目:打印出如下圖案(菱形)**************.程序分析:先把圖形分成兩部分來(lái)看待,前四行ー個(gè)規(guī)律,后三行ー個(gè)規(guī)律,利用雙重for循環(huán),第一層控制行,第二層控制列。.程序源代碼:main()(intij,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf(い);for(k=0;k<=2*i;k++)printfC'*n);printf(n\nM);for(i=0;i<=2;i++)for(j=0;j<=i;j++)primf("");for(k=0;k<=4-2*i;k++)printf("*");printf("\n");))【程序24]題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個(gè)數(shù)列的前20項(xiàng)之和。.程序分析:請(qǐng)抓住分子與分母的變化規(guī)律。.程序源代碼:main()(intn,t,number=20;floata=2,b=l,s=0;for(n=l;n<=number;n++)(s=s+a/b;t=a;a=a+b;b=t;/?這部分是程序的關(guān)鍵,請(qǐng)讀者猜猜t的作用?/}printf("sumis%9.6f\n",s);【程序25]題目:求1+2!+3!+...+20啲和.程序分析:此程序只是把累加變成了累乘。.程序源代碼:main(){floatn,s=O,t=l;for(n=l;n<=20;n++)(t*=n;s+=t;}printfC1+2!+3!...+20!=%e\n",s);}【程序26]題目:利用遞歸方法求5!。1.程序分析:遞歸公式:fn=fn_l*4!#include"stdio.h"main(){inti;intfact();for(i=0;i<5;i++)printf(',\40:%d!=%d\nM,i,fact(i));Iintfact(j)intj;{intsum;ifd=0)sum=l;elsesum=j*fact(j-l);returnsum;【程序27]題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個(gè)字符,以相反順序打印出來(lái)。.程序分析:.程序源代碼:includeMdio.h"main(){inti=5;voidpalin(intn);printf("\40:“);palin(i);printf(,,\nn);}voidpalin(n)intn;|charnext;if(n<=l){next=getchar();printf(、、〇:”);putchar(next);}else{next=getchar();palin(n-l);putchar(next);}}【程序28]題目:有5個(gè)人坐在ー起,問(wèn)第五個(gè)人多少歲?他說(shuō)比第4個(gè)人大2歲。問(wèn)第4個(gè)人歲數(shù),他說(shuō)比第3個(gè)人大2歲。問(wèn)第三個(gè)人,又說(shuō)比第2人大兩歲。問(wèn)第2個(gè)人,說(shuō)比第一個(gè)人大兩歲。最后問(wèn)第一個(gè)人,他說(shuō)是10歲。請(qǐng)問(wèn)第五個(gè)人多大?.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。.程序源代碼:age(n)intn;{intc;if(n==l)c=10;elsec=age(n-l)+2;return(c);}main(){printf("%dM,age(5));}【程序29]題目:給ー個(gè)不多于5位的正整數(shù),要求:ー、求它是幾位數(shù),二、逆序打印出各位數(shù)字。.程序分析:學(xué)會(huì)分解出每一位數(shù),如下解釋:(這里是一種簡(jiǎn)單的算法,師專數(shù)002班趙鑫提供).程序源代碼:main()longa,b,c,d,e,x;scanf(,,%ld,\&x);a=x/l0000ン?分解出萬(wàn)位?/b=x%10000/100〇;/?分解出千位?/c=x%1000/100;/?分解出百位?/d=x%100/1〇;/?分解出卜位?/e=x%10;/?分解出個(gè)位?/if(a!=0)printf("thereare5,%ld%ld%ld%ld%ld\nn,e,d,c,b,a);elseif(b!=0)printf(nthereare4,%ld%ld%ld%ld\nn,e,d,c,b);elseif(c!=0)printf(uthereare3,%ld%ld%ld\nH,e,d,c);elseif(d!=0)printf("thereare2,%ld%ld\n",e,d);elseif(e!=0)printf(ntherearel,%ld\nH,e);【程序30]題目:ー個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。.程序分析:同29例.程序源代碼:main()longge,shi,qian,wan,x;scanf(n%ldu,&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if(ge=wan&&shi==qian)/?個(gè)位等于萬(wàn)位并且十位等于千位?/printf(nthisnumberisahuiwen\nn);elseprintf("thisnumberisnotahuiwen\nn);}c程序開發(fā)經(jīng)典實(shí)例之四【程序3序題目:請(qǐng)輸入星期幾的第一個(gè)字母來(lái)判斷一下是星期幾,如果第一個(gè)字母ー樣,則繼續(xù)判斷第二個(gè)字母。.程序分析:用情況語(yǔ)句比較好,如果第一個(gè)字母ー樣,則判斷用情況語(yǔ)句或if語(yǔ)句判斷第二個(gè)字母。.程序源代碼:#includevoidmain()charletter;printf(npleaseinputthefirstletterofsomeday\nH);while((letter=getch())!=Y)/?當(dāng)所按字母為Y時(shí)オ結(jié)束?/switch(letter)(case'S':printf("pleaseinputsecondletter\nM);if((letter=getch())==,a,)printf("saturday\nH);elseif((letter=getch())==,u,)printf("sunday\n");elseprintf("dataerror\n");break;case,F,:printf("friday\n");break;case'Mprintf("monday\n");break;case,T,:printf("pleaseinputsecondletter\n");if((letter=getch())==,u')printf("tuesday\n");elseif((letter=getch())==rh')printf("thursday\n");elseprintf("dataerror\n");break;case'W,:printf("wednesday\n");break;default:printf("dataerror\n");}))【程序32]題目IPressanykeytochangecolor,doyouwanttotryit.Pleasehurryup!.程序分析:.程序源代碼:#includevoidmain(void){intcolor;for(color=0;color<8;color++){textbackground(color);/*設(shè)置文本的背景顏色?/cprintf(HThisiscolor%d\r\n\color);cprintf(nPressanykeytocontinue\r\nM);getch。;/?輸入字符看不見ッ}}【程序33]題目:學(xué)習(xí)gotoxy()與clrscr。函數(shù).程序分析:.程序源代碼:#includeckscr。;/?清屏函數(shù)?/textbackground(2);gotoxy(l,5);/?定位函數(shù)?/cprintf("Outputatrow5columnl\nn);textbackground(3);gotoxy(20,10);cprintf("Outputatrow10column20\n");}【程序34]題目:練習(xí)函數(shù)調(diào)用.程序分析:.程序源代碼:#includevoidhelio_world(void){printf("Hello,world!\n");}voidlhree_hellos(void){intcounter;for(counter=1;counter<=3;counter++)hello_world();/*調(diào)用此函數(shù)*/}three_hellos();/*調(diào)用此函數(shù)*/【程序35]題目:文本顏色設(shè)置.程序分析:.程序源代碼:#includevoidmain(void){intcolor;for(color=1;color<16;color++)(textcolor(color);/*設(shè)置文本顏色ワcprintf(nThisiscolor%d\r\nu,color);}textcolor(128+15);cprintf("Thisisblinking\r\n,');【程序36]題目:求100之內(nèi)的素?cái)?shù).程序分析:.程序源代碼:#include#include"math.h"#defineN101main(){intij,line,a[N];for(i=2;ifor(i=2;i<SQRT(N);I++)for(j=i+l;j<N;J+4-){if(a[i]!=0&&a[j]!=0)if(a|jJ%a[i]==0)a[j]=0;}printf(n\nH);for(i=2,line=0;i<N;I++)(if(a[iJ!=0)(printf(M%5dM,a[i]);line++;}if(line==10){printf(M\nH);line=0;)【程序37]題目:對(duì)10個(gè)數(shù)進(jìn)行排序.程序分析:可以利用選擇法,即從后9個(gè)比較過(guò)程中,選擇ー個(gè)最小的與第一個(gè)元素交換,下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換。.程序源代碼:#defineN10main()(intij,min,tem,a[NJ;/*inputdata*/printf(npleaseinputtennum:\nn);for(i=0;i<N;I++){printf(,'a[%d]=';i);scanf(H%d';&a[i]);}printf(,'\nH);for(i=0;i<N;I++)printf(H%5d';a[i]);printf(',\nn);/*sorttennum*/for(i=0;i<N-l;I++)min=i;for(j=i+l;j<N;J++)if(a[min]>a[j])min=j;tem=a[i];a[i]=a[min];a[min]=tem;}/*outputdata*/printf(*'Aftersorted\nn);for(i=0;i<N;I++)printf("%5d”,a[i]);}【程序38]題目:求一個(gè)3*3矩陣對(duì)角線元素之和.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將累加后輸出。.程序源代碼:main()(floata[3][3],sum=O;intij;printf("pleaseinputrectangleelement:\nH);for(i=0;i<3;i++)for(j=0;j<3;j++)scanf(M%r,&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("duijiaoxianheis%6.2f*,sum);}【程序39]題目:有一個(gè)已經(jīng)排好序的數(shù)組。現(xiàn)輸入ー個(gè)數(shù),要求按原來(lái)的規(guī)律將它插入數(shù)組中。.程序分析:首先判斷此數(shù)是否大于最后ー個(gè)數(shù),然后再考慮插入中間的數(shù)的情況,插入后此元素之后的數(shù),依次后移ー個(gè)位置。.程序源代碼:main()(inta[ll]={1,4,6,9,13,16,19,28,40,100);inttemp1,temp2,number,end,i,j;printf("originalarrayis:\n°);for(i=0;i<10;i++)printf("%5d”,a[i]);primf(“\n");printf(Hinsertanewnumber:M);scanf("%dn,&number);end=a[9];if(number>end)a[10]=number;elsefor(i=0;i<10;i++)if(a[i]>number)(templ=a[i];a[i]=number;for(j=i+1;j<11;j++)(temp2=a[j];a[j]=templ;templ=temp2;}break;}}}for(i=0;i<ll;i++)printf("%6d",a[ij);|【程序40]題目:將一個(gè)數(shù)組逆序輸出。.程序分析:用第一個(gè)與最后ー個(gè)交換。.程序源代碼:#defineN5main(){inta[N]={9,6,5,4,l},i,temp;printf("\noriginalarray:\nH);for(i=0;i<N;I++)printf(',%4d';a[i]);for(i=0;i(temp=a[i];a[i]=a[N-i-l];a[N-i-l]=temp;}printf(M\nsortedarray:\nu);for(i=0;i<N;I++)printf(,'%4d,,,a[i]);)c程序開發(fā)經(jīng)典實(shí)例之五【程序41]題目:學(xué)習(xí)static定義靜態(tài)變量的用法.程序分析:.程序源代碼:#include"stdio.h"varfunc()intvar=O;staticintstatic_var=O;printf("\40:varequal%d\n",var);printf("\40:staticvarequal%d\nM,static_var);printf(”\n");var++;static_var++;}voidmain()(inti;for(i=0;i<3;i++)varfunc();}【程序42]題目:學(xué)習(xí)使用auto定義變量的用法.程序分析:.程序源代碼:#include"stdio.h"main(){inti,num;num=2;for(i=0;i<3;i++)printf(n\40:Thenumequal%d\n",num);num++;{autointnum=l;printf(H\40:Theinternalblocknumequal%d\nu,num);num++;))}【程序43]題目:學(xué)習(xí)使用static的另ー用法。.程序分析:.程序源代碼:#include"stdio.h"main()(inti,num;num=2;for(i=0;i<3;i++)(printf(M\40:Thenumequal%d\nu,num);num++;staticintnum=l;printf(u\40:Theinternalblocknumequal%d\n",num);num++;【程序44]題目:學(xué)習(xí)使用external的用法。L程序分析:.程序源代碼:#include"stdio.h"inta,b,c;voidadd(){inta;a=3;c=a+b;)voidmain()(a=b=4;add();printf(nThevalueofcisequalto%d\n",c);【程序45]題目:學(xué)習(xí)使用register定義變量的方法。.程序分析:.程序源代碼:voidmain(){registerinti;inttmp=0;for(i=l;i<=100;i++)tmp+=i;primf("Thesumis%d\n",tmp);}【程序46]題目:宏#define命令練習(xí)(1).程序分析:.程序源代碼:include"stdio.h"#defineTRUE1#defineSQ(x)(x)*(x)voidmain(){intnum;intagain=l;printf(n\40:Programwillstopifinputvaluelessthan5O.\nn);while(again){printf("\40:Pleaseinputnumber==>'*);scanf("%d”,&num);printf(n\40:Thesquareforthisnumberis%d\n”,SQ(num));if(num>=50)again=TRUE;elseagain=FALSE;})【程序47]題目:宏#define命令練習(xí)(2).程序分析:.程序源代碼:#include"stdio.h"/?宏定義中允許包含兩道衣裳命令的情形,此時(shí)必須在最右邊加上へ*/intt;\t=a;\a=b;\b=t;\)voidmain(void)(intx=10;inty=20;printf(Hx=%d;y=%d\n”,x,y);exchange(x,y);printf(Hx=%d;y=%d\nH,x,y);}【程序48]題目:宏#define命令練習(xí)(3).程序分析:.程序源代碼:#defineLAG>#defineSMA<#defineEQ=include“stdio.h"voidmain()inti=10;intj=20;if(iLAGj)printf("\40:%dlargerthan%d\n",i,j);elseif(iEQj)printf("\40:%dequalto%d\nM,i,j);elseif(iSMAj)printf(n\40:%dsmallerthan%d\n'*,ij);elseprintf(n\40:Nosuchvalue.\nH);)【程序49]題目:#if#ifdef和#ifndef的綜合應(yīng)用。.程序分析:.程序源代碼:#include"stdio.h"#defineMAX#defineMAXIMUM(x,y)(x>y)?x:y#defineMINIMUM(x,y)(x>y)?y:xvoidmain()(inta=10,b=20;#ifdefMAXprintf(n\40:Thelargeroneis%d\n”,MAXIMUMS,b));#elseprintf(H\40:Theloweroneis%d\n”,MINIMUMS,b));#endif#ifndefMINprintf(n\40:Theloweroneis%d\n",MlNIMUM(a,b));#elseprintf(M\40:Thelargeroneis%d\nn,MAXIMUM(a,b));#endif#undefMAX#ifdefMAXprintf(n\40:Thelargeroneis%d\nu,MAXIMUM(a,b));#elseprintf("\40:Theloweroneis%d\nH,MINIMUM(a,b));#endif#defineMIN#ifndefMINprintf(n\40:Theloweroneis%d\nM,MINIMUM(a,b));#elseprintf(n\40:Thelargeroneis%d\nu,MAXIMUM(a,b));#endif|【程序50]題目:include的應(yīng)用練習(xí).程序分析:.程序源代碼:test.h文件如下:#defineLAG>#defineSMA<#defineEQ=#include"test.h"/*ー個(gè)新文件5O.c?包含test.h*/#include"stdio.h"voidmain(){inti=10;intj=20;if(iLAGj)printf("\40:%dlargerthan%d\n",i,j);elseif(iEQj)printf("\40:%dequalto%d\n",ij);elseif(iSMAj)printf("\40:%dsmallerthan%d\n",i,j);elseprintf("\40:NosuchvalueAn");}c程序開發(fā)經(jīng)典實(shí)例之六【程序51]題目:學(xué)習(xí)使用按位與&..程序分析:0&0=0;0&1=0;1&0=0;1&1=1.程序源代碼:#include"stdio.h"main()inta,b;a=077;b=a&3;printf(n\40:Thea&b(decimal)is%d\nM,b);b&=7;printf(n\40:Thea&b(decimal)is%d\nH,b);)【程序52]題目:學(xué)習(xí)使用按位或I?.程序分析:010=0;011=1;110=1;111=1.程序源代碼:include"stdio.h"main(){inta,b;a=077;b=al3;printf(n\40:Thea&b(decimal)is%d\nヽb);bl=7;printf(M\40:Thea&b(decimal)is%d\n",b);}【程序53]題目:學(xué)習(xí)使用按位異或へ。.程序分析:0Ao=0;0Al=1;lA0=l;lAl=0.程序源代碼:includeMstdio.h"main(){inta,b;a=077;b=aA3;printf(n\40:Thea&b(decimal)is%d\n”,b);bA=7;printf(H\40:Thea&b(decimal)is%d\n\b);}【程序54]題目:取ー個(gè)整數(shù)a從右端開始的4?7位。程序分析:可以這樣考慮:⑴先使a右移4位。(2)設(shè)置ー個(gè)低4位全為I,其余全為〇的數(shù)??捎?3)將上面二者進(jìn)行&運(yùn)算。.程序源代碼:main(){unsigneda,b,c,d;scanf(n%o",&a);b=a?4;c=~(~0vv4);d=b&c;printf("%o\n%o\n",a,d);}【程序55]題目:學(xué)習(xí)使用按位取反~。.程序分析:?0=1;?1=0;.程序源代碼:#include"stdio.h"main(){inta,b;a=234;b=~a;printf(*'\40:Thea's1complement(decimal)is%d\n",b);a=~a;printf(n\40:Thea's1complement(hexidecimal)is%x\n",a);}【程序56]題目:畫圖,學(xué)用circle畫圓形。.程序分析:.程序源代碼:/?circle*/#include"graphics.h"main()intdriver,mode,i;floatj=l,k=l;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,,M,);setbkcolor(YELLOW);for(i=0;i<=25;i++){setcolor(8);circle(310,250,k);k=k+j;j=j+0.3;)}【程序57]題目:畫圖,學(xué)用line畫直線。.程序分析:.程序源代碼:#include"graphics.h"main()intdriver,mode,i;floatxO,yO,yl,xl;floatj=12,k;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,,,n);setbkcolor(GREEN);x0=263;y0=263;y1=275;x1=275;for(i=0;i<=18;i++)setcolor(5);line(xO,yO,xO,yl);xO=xO-5;yO=yO-5;xl=xl+5;yl=yl+5;j=j+10;}xO=263;yl=275;yO=263;for(i=0;i<=20;i++){setcolor(5);line(xO,yO,xO,yl);xO=xO+5;yO=yO+5;yi=yi-5;}}【程序58]題目:畫圖,學(xué)用rectangle畫方形。.程序分析:利用for循環(huán)控制100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。.程序源代碼:#include"graphics}”main()(intx0,y0,y1,x1,driver,mode,i;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,,M,);setbkcolor(YELLOW);x0=263;y0=263;y1=275;x1=275;for(i=0;i<=18;i++)(setcolor(l);rectangle(xO,yO,x1,y1);x0=x0-5;y0=y0-5;xl=xl+5;yl=yl+5;}settextstyle(DEFAULT_FONT,HORIZ_DIR,2);outtextxy(150,40/'Howbeautifulitis!");line。30,60,480,60);setcolor(2);circle(269,269,137);}【程序59]題目:畫圖,綜合例子。.程序分析:.程序源代碼:definePAI3.1415926defineB0.809include"graphics.h"include"math.h"main()inti,j,k,xO,yO,x,y,drivenmode;floata;driver=CGA;mode=CGACO;initgraph(&driver,&mode,,M,);setcolor(3);setbkcolor(GREEN);x0=150;y0=100;circle(x0,y0,10);circle(xO,yO,2O);circle(x0,y0,50);for(i=0;i<16;i++)|a=(2*PAI/16)*i;x=ceil(x0+48*cos(a));y=ceil(yO+48*sin(a)*B);setcolor(2);line(xO,yO,x,y);}setcolor(3);circle(x0,y0,60);/*Make0timenormalsizeletters*/settextstyle(DEFAULT_FONT,HORIZ_DIR,0);outtextxy(10,170,Mpressakey");getch();setfillstyle(HATCH_FILL,YELLOW);floodfill(202,l00,WHITE);getch();for(k=0;k<=500;k++){setcolor(3);for(i=0;i<=16;i++)a=(2*PAI/16)*i+(2*PAI/180)*k;x=ceil(x0+48*cos(a));y=ceil(yO+48+sin(a)*B);setcolor(2);line(xO,yO,x,y);}for(j=l;j<=50;j++){a=(2*PAI/16)*i+(2*PAI/180)*k-l;x=ceil(x0+48*cos(a));y=ceil(yO+48*sin(a)*B);line(xO,yO,x,y);)}restorecrtmode();}【程序60]題目:畫圖,綜合例子。.程序分析:.程序源代碼:#include"grapnics.h"defineLEFT0defineTOP0defineRIGHT639defineBOTTOM479defineLINES400defineMAXCOLOR15main(){intdriver,mode,error;intxl,yl;intx2,y2;intdx1,dy1,dx2,dy2,i=1;intcount=0;intcolor=0;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,,,M);xl=x2=yl=y2=10;dxl=dyl=2;dx2=dy2=3;while(!kbhit())(Iine(xl,yl,x2,y2);xl+=dx1;y1+=dy1;x2+=dx2;y2+dy2;if(xl<=LEFTIIx1>=RIGHT)dxl=-dxl;if(yl<=TOPIIy1>=BOTTOM)dyl=-dyl;if(x2<=LEFTIIx2>=RIGHT)dx2=-dx2;if(y2<=TOPIIy2>=BOTTOM)dy2=-dy2;if(++count>LINES){setcolor(color);color=(color>=MAXCOLOR)?0:++color;)}closegraph();}C程序開發(fā)經(jīng)典實(shí)例之七【程序61]題目:打印出楊輝三角形(要求打印出10行如下圖)1.程序分析:1TOC\o"1-5"\h\z1 1I 2 113 3 11 4 6 4 11 5 10 10 5 12.程序源代碼:main(){inti,j;inta[10J[10J;printf("\nM);for(i=0;i<10;i++){a[i][0]=l;a[i][i]=l;)for(i=2;i<10;i++)for(j=l;j<I;J++)a[i]U]=a[i-l][j-l]+a[i-l]U];for(i=0;i<10;i++)for(j=0;j<=i;j++)printf(M%5d';a[i][j]);printf(H\nn);}))【程序62]題目:學(xué)習(xí)putpixel畫點(diǎn)。.程序分析:.程序源代碼:includeMstdio.hH#include“graphics.h"main(){intij,driver=VGA,mode=VGAHI;initgraph(&driver,&mode,',n);setbkcolor(YELLOW);for(i=50;i<=230;i+=20)for(j=50;j<=230y++)putpixel(i,j,l);for(j=50;j<=230;j+=20)for(i=50;i<=230;i++)pulpixel(i,j,l);}【程序63]題目:畫橢圓ellipse.程序分析:.程序源代碼:#include"stdio.h"#include“graphics.h"#include"conio.h"main(){intx=360,y=160,driver=VGA,mode=VGAHI;intnum=20,i;inttop,bottom;initgraph(&driver,&mode,'H,);top=y-30;bottom=y-30;for(i=0;i<NUM;I++)|ellipse(250,250,0,360,top,bottom);top-=5;bottom+=5;}getch();}【程序64]題目:利用ellipseandrectangle畫圖。.程序分析:.程序源代碼:#include"stdio.h"#include"graphics.h"#include"conio.h"main()intdriver=VGA,mode=VGAHI;inti,num=15,top=50;intleft=20,right=50;initgraph(&driver,&mode,'M,);for(i=0;i<NUM;I++)(ellipse(250,250,0,360,right,left);ellipse(250,250,0,360,20,top);rectangle(20-2*i,20-2*i,l0*(i+2),l0*(i+2));right+=5;left+=5;top+=10;}getch();}【程序65]題目:ー個(gè)最優(yōu)美的圖案。.程序分析:.程序源代碼:#include"graphics.h"#include"math.h"#include"dos.h"#include"conio.h"#include*'stdlib.h"include飛tdio.h"#include"stdarg.h"#defineMAXPTS15#definePI3.1415926structPTS{intx,y;};doubleAspectRatio=0.85;voidLineToDemo(void)(structviewporttypevp;structPTSpoints[MAXPTS];inti,j,h,w,xcenter,ycenter;intradius,angle,step;doublerads;printf("MoveTo/LineToDemonstration1');getviewsettings(&vp);h=vp.bottom-vp.top;w=vp.right-vp.left;xcenter=w/2;/*Determinethecenterofcircle*/ycenter=h/2;radius=(h-30)/(AspectRatio*2);step=360/MAXPTS;/*Determine#ofincrements*/angle=0;/*Beginatzerodegrees*/for(i=0;irads=(double)angle*PI/180.0;/*Convertangletoradians*/points[i].x=xcenter+(int)(cos(rads)*radius);points[i].y=ycenter-(int)(sin(rads)*radius*AspectRatio);angle+=step;/*Movetonextincrement*/}circle(xcenter,ycenter,radius);/*Drawboundingcircle*/for(i=0;ifor(j=i;jmoveto(points[ij.x,points[i].y);/*Movetobeginningofcord*/lineto(points[j].x,points1].y);/*Drawthecord*/)main()(intdriver,mode;driver=CGA;mode=CGACO;initgraph(&driver,&mode,',n);setcolor(3);setbkcolor(GREEN);LineToDemo();卜【程序66]題目:輸入3個(gè)數(shù)a,b,c,按大小順序輸出。.程序分析:利用指針?lè)椒ā?程序源代碼:/?pointer*/main(){intnl,n2,n3;int*pointer1,*pointer2,*pointer3;prinビ("pleaseinput3number:nl,n2,n3:");scanf("%d,%d,%d",&nl,&n2,&n3);pointeri=&nl;pointer2=&n2;pointer3=&n3;if(nl>n2)swap(pointer1,pointer2);if(nl>n3)swap(poinlerl,pointer3);if(n2>n3)swap(pointer2,pointer3);printf("thesortednumbersare:%d,%d,%d\n",n1,n2,n3);)swap(pl,p2)int*pl,*p2;{intp;p=*pl;*pl=*p2;*p2=p;}【程序67]題目:輸入數(shù)組,最大的與第一個(gè)元素交換,最小的與最后ー個(gè)元素交換,輸出數(shù)組。.程序分析:譚浩強(qiáng)的書中答案有問(wèn)題。.程序源代碼:main(){intnumber[10];input(number);max_min(number);output(number);}input(number)intnumber[10];{inti;for(i=0;i<9;i++)scanf(M%d;',&number[i]);scanf(1,%d',,&number[9]);max_min(array)intarray!10];{int*max,*min,k,l;int*p,*arr_end;arr_end=array+10;max=min=array;for(p=array+l;p<ARR_END;P++)if(*p>*max)max=p;elseif(*p<*min)min=p;k二?max;l=*min;*p=array[0];array[0]=l;l=*p;*p=array[9];array[9]=k;k=*p;return;)output(array)intarray[10];{int*p;for(p=array;p<ARRAY+9;P++)printf("%d,”,*p);printf(n%d\nM,array[9]);}【程序68]題目:有n個(gè)整數(shù),使其前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)變成最前面的m個(gè)數(shù)1.程序分析:2.程序源代碼:main(){intnumber[20J,n,m,i;printf("thetotalnumbersis:'*);scanf(n%d",&n);printf("backm:");scanf(M%d",&m);for(i=0;i<N-l;I++)scanf(,,%d,,\&number[i]);scanf(H%d",&number[n-1]);move(number,n,m);for(i=0;i<N-l;I++)printf(,'%d,M,number[i]);printf("%d'\number[n-1]);}move(array,n,m)intn,m,array[20];{int*p,array_end;array_end=*(array+n-1);for(p=array+n-l;p>array;p-)*p=*(p-l);*array=array_end;m—;if(m>0)move(array,n,m);}【程序69]題目:有n個(gè)人圍成一圈,順序排號(hào)。從第一個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問(wèn)最后留卜.的是原來(lái)第幾號(hào)的那位。2.程序源代碼:#definenmax50main(){inti,k,m,n,num[nmaxj,*p;printf("pleaseinputthetotalofnumbers:'*);scanf(**%d**,&n);p=num;for(i=0;i<N;I++)*(p+i)=i+l;i=0;k=0;m=0;while(m<N-l)|if(*(p+i)!=0)k++;if(k==3)(*(p+i)=0;k=0;m++;}i++;if(i==n)i=0;}while(*p==0)p++;printf(**%disleft\n**,*p);)【程序70]題目:寫一個(gè)函數(shù),求一個(gè)字符串的長(zhǎng)度,在main函數(shù)中輸入字符串,并輸出其長(zhǎng)度。.程序分析:.程序源代碼:main(){intlen;char*str[20];printf("pleaseinputastring:\nH);scanf(n%sn,str);len=length(str);printf("thestringhas%dcharacters.M,len);}length(p)char*p;{intn;n=0;while(*p!=AO,){n++;p++;}returnn;}C程序開發(fā)經(jīng)典實(shí)例之八【程序71]題目:編寫inpul()和output。函數(shù)輸入,輸出5個(gè)學(xué)生的數(shù)據(jù)記錄。2.程序源代碼:#defineN5structstudent|charnum[6];charname網(wǎng);intscore[4];}stu[NJ;input(stu)structstudentstu[J;(inti,j;for(i=0;i<N;I++)(printf(M\npleaseinput%dof%d\n”,i+l,N);printf(”num:");scanf(H%sM,stu[i].num);printf("name:”);scanf("%sM,stu[i].name);for(j=0;j<3j++)Iprintf("score%d.",j+l);scanf(M%dM

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論