C語(yǔ)言編程答案_第1頁(yè)
C語(yǔ)言編程答案_第2頁(yè)
C語(yǔ)言編程答案_第3頁(yè)
C語(yǔ)言編程答案_第4頁(yè)
C語(yǔ)言編程答案_第5頁(yè)
已閱讀5頁(yè),還剩51頁(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)介

1、.1 溫度轉(zhuǎn)換(06秋)背景: 經(jīng)常出國(guó)旅行的驢友都知道,需要時(shí)時(shí)了解當(dāng)?shù)氐臍鉁貭顩r,但不少國(guó)家采用了不同的溫度計(jì)量單位:有些使用華氏溫度標(biāo)準(zhǔn)(F),有些使用攝氏溫度(C)。現(xiàn)在,請(qǐng)你根據(jù)溫度轉(zhuǎn)換公式設(shè)計(jì)一個(gè)溫度轉(zhuǎn)換程序,可以進(jìn)行溫度轉(zhuǎn)換。如果輸入攝氏溫度,顯示轉(zhuǎn)換的華氏溫度;如果輸入華氏溫度,顯示轉(zhuǎn)換的攝氏溫度。溫度轉(zhuǎn)換的公式為:F(C95)32 ;C(F32)59 ;式中F-華氏溫度,C-攝氏溫度。輸入:第一個(gè)數(shù)據(jù)(1 或 2 )確定轉(zhuǎn)換的類型:華氏轉(zhuǎn)攝氏(1);攝氏轉(zhuǎn)華氏(2); 第二個(gè)數(shù)據(jù)是相應(yīng)需要轉(zhuǎn)換的溫度值。 輸出:相應(yīng)的轉(zhuǎn)換后的溫度值(保留小數(shù)點(diǎn)后 2 位)。程序?qū)嵗?:#inc

2、lude void main() int a; float x,y; scanf(%d%f,&a,&x); if ( a=1 ) y=(x-32)*5.0/9.0; printf(The Centigrade is %.2fn,y); else if(a=2) y=(x*9.0/5.0)+32; printf(The Fahrenheit is %.2fn,y); 結(jié)果:輸入:1100輸出:TheCentigradeis37.78輸入:2-6.67輸出:TheFahrenheitis19.99程序?qū)嵗?:#include void main() float C;int a; scanf(%d

3、%f,&a,&C); switch (a) case 1: printf(The Centigrade is %.2fn,(C-32)*5/9);break; case 2: printf(The Fahrenheit is %.2fn,(C*9/5)+32);break; default: printf(errorn); 結(jié)果:輸入:10輸出:TheCentigradeis-17.78輸入:288輸出:TheFahrenheitis190.409 分?jǐn)?shù)的四則運(yùn)算在小學(xué)時(shí)我們就學(xué)習(xí)了分?jǐn)?shù)的四則運(yùn)算,即對(duì)兩個(gè)分?jǐn)?shù)進(jìn)行加、減、乘、除等運(yùn)算,現(xiàn)在我們嘗試下用C語(yǔ)言來(lái)實(shí)現(xiàn)。輸入:分?jǐn)?shù)1 操作符 分?jǐn)?shù)2

4、輸出:計(jì)算結(jié)果要求:計(jì)算結(jié)果使用分?jǐn)?shù)表示,并且為最簡(jiǎn)化。例如結(jié)果為2/6,則被簡(jiǎn)化為1/3程序?qū)嵗?:#include int main() int a,b,c,d,e,f,x,y,z; char g; scanf(%d/%d %c %d/%d,&a,&b,&g,&c,&d); if(g=+) e=a*d+b*c;f=b*d; if(g=-) e=a*d-b*c;f=b*d; if(g=*) e=a*c;f=b*d; if(g=/) e=a*d;f=b*c; x=e; y=f; z=x%y; if(z!=0) while(z!=0) x=y;y=z;z=x%y; e=e/y; f=f/y; i

5、f(f0) printf(%d/%d %c %d/%d = %d/%d,a,b,g,c,d,e,f); if(f0) printf(%d/%d %c %d/%d = %d/%d,a,b,g,c,d,-e,-f); else printf(%d/%d %c %d/%d = %d,a,b,g,c,d,e/f); printf(n); return 0; 結(jié)果:輸入:1/3+1/2輸出:1/3+1/2=5/6程序?qū)嵗?:#includemath.h #include void main() int a,b,c,d,m,n,x,y,v;char z; scanf(%d/%d %c %d/%d,&a,&

6、b,&z,&c,&d); switch (z) case(+):m=a*d+b*c;n=b*d;break; case(-):m=a*d-b*c;n=b*d;break; case(*):m=a*c;n=b*d;break; case(/):m=a*d;n=b*c;break; x=fabs(m);y=fabs(n);v=x%y; while(v!=0) x=y;y=v;v=x%y; if(m/y=0) printf(%d/%d %c %d/%d = 0n,a,b,z,c,d); else if(n/y=1) printf(%d/%d %c %d/%d = %dn,a,b,z,c,d,m/y)

7、; else printf(%d/%d %c %d/%d = %d/%dn,a,b,z,c,d,m/y,n/y); 結(jié)果: 輸入:1/2+2/6輸出:1/2+2/6=5/611 百馬百擔(dān)有100匹馬,馱100擔(dān)貨,其中大馬馱3擔(dān),中馬馱2擔(dān),兩匹小馬馱1擔(dān)輸入:無(wú)輸出:大、中、小馬的個(gè)數(shù),用逗號(hào)分隔。例如:2,30,68說(shuō)明:大、中、小馬都必須有,結(jié)果中要列出所有的組合可能每個(gè)結(jié)果占一行 因?yàn)橛卸鄠€(gè)結(jié)果,結(jié)果的排序按照大馬的個(gè)數(shù)從少到多程序?qū)嵗?:#include void main() int bigHorse,middleHorse,smallHorse; bigHorse=0; whil

8、e(bigHorse=33) middleHorse=1; while(middleHorse50) smallHorse=100-bigHorse-middleHorse; if(3*bigHorse+2*middleHorse+smallHorse/2=100&smallHorse%2=0) printf(%d,%d,%dn,bigHorse,middleHorse,smallHorse); middleHorse+; bigHorse+; 結(jié)果: 輸入:無(wú)輸出:2,30,685,25,708,20,7211,15,7414,10,7617,5,78程序?qū)嵗?#includevoid ma

9、in() int a,b,c; for(a=0;a=33;a+) for(b=1;b50;b+) c=100-a-b; if(3*a+2*b+c/2=100&c%2=0) printf(%d,%d,%dn,a,b,c); 結(jié)果:輸入:無(wú)輸出:2,30,685,25,708,20,7211,15,7414,10,7617,5,7816 郵票組合(選作)背景:我們寄信都要貼郵票,在郵局有一些小面值的郵票,通過(guò)這些小面值郵票中的一張或幾張的組合,可以滿足不同郵件的不同的郵資?,F(xiàn)在,郵局有4種不同面值的郵票。在每個(gè)信封上最多能貼5張郵票,面值可相同,可不同。輸入:四種郵票的面值。輸出:用這四種面值組成

10、的郵資最大的從1開(kāi)始的一個(gè)連續(xù)的區(qū)間。說(shuō)明:如結(jié)果為10,則表明使用4張郵票可組合出1、2、3、4、5、6、7、8、9、10這些郵資。名詞解釋: 郵資:就是你寄東西需要花多少錢。 郵票面額:是由國(guó)家發(fā)行的具有固定價(jià)格的花紙片,被稱為郵票。如果你寄東西,郵局稱了重量,告訴你要240分。這樣你就要貼郵票了。如果現(xiàn)在郵局的郵票有面值為80分、50分、20分和10分的四種,你就可以采用不同的組合得到240的郵資,例如:采用3張80分的可以湊出240分;或者24張10分的湊起來(lái)240分也可以。顯然不同郵票的組合都可以得到同樣一種郵資。程序?qū)嵗?:/*This program is to find the

11、 max set*/ #include main() int a,b,c,d,i,j,k,l; static int s1000; scanf(%d%d%d%d,&a,&b,&c,&d); for (i=0;i=5;i+) for (j=0;i+j=5;j+) for (k=0;k+i+j=5;k+) for (l=0;k+i+j+l=5;l+) if (a*i+b*j+c*k+d*l) sa*i+b*j+c*k+d*l+; for (i=1;i=1000;i+) if(!si) break; printf(The max is %d.n,-i); return 0; 結(jié)果:輸入:141221

12、輸出:Themaxis71.程序?qū)嵗?:#include stdio.h int total,max; int value5,num1000 = 0 ; void findmax(int n,int p) int i; if (p 5 ) for (i = n;i = 4;i +) total += valuei; if (max total) max = total; numtotal = 1; findmax(i,p + 1); total -= valuei; int main() int i; for (i = 1;i = 4;i +) scanf(%d,&valuei); total

13、 = 0;max = 0; findmax(1,0); for (i = 1;i = max;i +) if (!numi) break; printf(The max is %d.n,i - 1); return 0; 結(jié)果: 輸入:1 3 7 12輸出:The max is 46.18 等值數(shù)列段(06秋)如果一個(gè)數(shù)列中的某一段(至少有兩個(gè)元素)的各元素值均相同,則稱之為等值數(shù)列段。等值數(shù)列段中元素的個(gè)數(shù)叫做等值數(shù)列段的長(zhǎng)度。輸入:由N個(gè)元素組成的整數(shù)數(shù)列A(其中N=50)輸出:A中長(zhǎng)度最大的所有等值數(shù)列段的始末位置,如果沒(méi)有等值數(shù)列段,則輸出No equal number list. 說(shuō)

14、明: 始末位置是指數(shù)組下標(biāo),即0表示第一個(gè)元素。 如果有多個(gè)同等長(zhǎng)度的等值數(shù)列,只輸出第一個(gè)等值數(shù)列的起始位置。 當(dāng)在一個(gè)LIST中出現(xiàn)兩個(gè)等長(zhǎng)的連續(xù)串的時(shí)候,我們的答案應(yīng)該是第一個(gè)等長(zhǎng)串。NN開(kāi)始,輸入j+記數(shù)器加1i+ 記數(shù)器加1保存長(zhǎng)度和位置沒(méi)遍歷完 in ?如果相臨字符相等是否也與下一字符相等輸出,結(jié)束是否為最長(zhǎng)YNYNYY程序?qū)嵗?:#includestdio.hmain()int i=0,j=0,k,n,max=0,maxnum=0,a50;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);/*輸入*/for(i=j;in;i+)/*循環(huán)遍歷*/j=

15、i+1;if(ai=aj)/*如果相臨的相等,i不變,繼續(xù)看相等字符有多長(zhǎng)*/while(ai=a+j);/*循環(huán)直到不相等為止*/if(maxnum0)/*輸出*/printf(The longest equal number list is from %d to %d.n,max,maxnum+max-1);elseprintf(No equal number list.n);結(jié)果:輸入:512345輸出:Noequalnumberlist.程序?qū)嵗?:#includestdio.h void main() int a,x50,i,j,m=0,n=0; scanf(%d,&a); for(

16、i=0;ia;i+) scanf(%d,&xi); for(i=0;ia-1;i=j) j=i+1; while(xj=xi&jn-m) m=i;n=j-1; if(n-m)=0) printf(No equal number list.n); else printf(The longest equal number list is from %d to %d.n,m,n); 輸入:結(jié)果:6101110輸出:Thelongestequalnumberlistisfrom2to4.19 大家一起做游戲(06秋)幼兒園的小朋友們剛學(xué)習(xí)了如何數(shù)數(shù),阿姨在下課時(shí)組織大家一起玩游戲。規(guī)則如下:所有的小朋

17、友繞成一圈,順序排號(hào),從第一個(gè)小朋友開(kāi)始報(bào)數(shù),凡是報(bào)到固定數(shù)字(例如5)的,都退出該游戲,直到只剩下一位小朋友游戲才中止。 每個(gè)小朋友都希望自己能有更多的練習(xí)數(shù)數(shù)的機(jī)會(huì),所以都希望成為最終被留下的那位。 現(xiàn)在,請(qǐng)大家?guī)托∨笥褌冇?jì)算一下,在第一次排號(hào)的時(shí)候排到第幾位才能成為最終被留下的小朋友。輸入:小朋友的個(gè)數(shù)(=50) 要被練習(xí)的數(shù)字輸出:最終被留下的小朋友的序號(hào)說(shuō)明:如“要被練習(xí)的數(shù)字”是5,則每次數(shù)到5的同學(xué)要退出該游戲N數(shù)組計(jì)數(shù)器加1輸出,結(jié)束更改數(shù)組 置零計(jì)數(shù)器更改從頭遍歷開(kāi)始,輸入,初始化小朋友是否已退出遍歷數(shù)組結(jié)束只剩下一位小朋友YNY這次是否退出NYYY報(bào)數(shù)記數(shù)器加1程序?qū)嵗?:

18、#includestdio.hmain() int m,n,d,i,temp,a100;scanf(%d%d,&n,&m);for(i=0;in;i+)ai=i+1;temp=0;d=0;while(dn-1)/*標(biāo)志次數(shù),n-1次后結(jié)束,這是將只剩一個(gè)小孩*/for(i=0;in;i+)if(ai!=0)/*小朋友還沒(méi)退出游戲*/ temp+; /*小朋友報(bào)數(shù)的數(shù)字*/if(temp=m) /*小朋友這次該退出游戲*/ ai=0; /*在數(shù)組中表示出來(lái)*/temp=0; /*報(bào)數(shù)從新開(kāi)始*/d+; /*退出人數(shù)加1*/ for(i=0;in;i+)/*輸出,尋找最后一個(gè)退出的小朋友*/if(

19、ai!=0)printf(The left child is NO %d.n,ai);結(jié)果:輸入103:輸出:TheleftchildisNO4.程序?qū)嵗?:#include void main() int a51,i,j,x,n; scanf(%d %d,&n,&j); for ( i=0;i=n-2;i+) ai=i+1;an-1=0;x=n-1; while( ax!=x ) for( i=1;i=j-1;i+) x=ax; ax = aax; printf( The left child is NO %d.,x+1 ); 結(jié)果: 輸入:5015輸出:TheleftchildisNO22

20、.23 刪除重復(fù)字符(06秋)背景:輸入一個(gè)長(zhǎng)度不超過(guò) 100 的字符串,刪除串中的重復(fù)字符。輸入:輸入要檢查的字符串,長(zhǎng)度不超過(guò)100個(gè)字符。例如:abacaeedabcdcd。輸出:刪除重復(fù)字符后的字符串。例如:abced。開(kāi) 始輸入字符串求串長(zhǎng)len,I=1輸出第一個(gè)字符J=0YIlen?NNJi結(jié)束Ynumi=numj?NYJ+輸出第i個(gè)字符I+程序?qū)嵗?:#include#includemain()char num99;int i,j,len,m=0;gets(num);/*輸入字符串*/len=strlen(num);/*求字符串長(zhǎng)度*/printf(%c,num0);for(i=

21、1;ilen;i+,m=0)/*從第二個(gè)開(kāi)始*/for(j=0;ji;j+)/*判斷是否與前邊的相等*/if(numi=numj)/*如果有相等的*/m=1;break;if(m=0)/*如果沒(méi)有相等的*/printf(%c,numi); 結(jié)果:輸入:abacaeedabcdcd輸出: abced程序?qū)嵗?:#includestdio.h #includestring.h void main() char ch101; int i,j,k,s; gets(ch); s=strlen(ch); for(i=1;is;i+) for(j=0;ji;j+) if(chi=chj) for(k=i;k

22、s;k+) chk=chk+1; i-;s-;break; puts(ch); 輸入:111122233344455577yuyuyu輸出:123457yu24 單詞排序(06秋)輸入 5 個(gè)單詞,將它們按從大到小的順序排列后輸出。輸入:5個(gè)單詞輸出:排序后的順序開(kāi) 始輸入5個(gè)字符串i=0i4?J=iYJ5?NN輸出Y結(jié)束Nwiwj?Ywi交換wji+j+程序?qū)嵗?:#include#includemain()char w520,a20;int i,j;for(i=0;i5;i+)gets(wi); /*用一維數(shù)組讀串的方式生成二維數(shù)組*/for(i=0;i4;i+)for(j=i;j5;j+

23、)if(strcmp(wi,wj)0) /*用字符串比較函數(shù)判斷*/ /*冒泡法排序:直接交換*/strcpy(a,wj);strcpy(wj,wi);strcpy(wi,a);for(i=0;i5;i+)puts(wi); /*用一維數(shù)組寫串的方式輸出二維數(shù)組*/ 輸入:BASICC+PascalCFortran輸出:PascalFortranC+CBASIC程序?qū)嵗?:#includestdio.h #includestring.h void main() char ch526,c26; int i,j,k; for(i=0;i5;i+) gets(chi); for(i=0;i4;i+)

24、 k=i; for(j=i+1;j5;j+) if(strcmp(chk,chj)0) k=j; if(k!=i) strcpy(c,chi); strcpy(chi,chk); strcpy(chk,c); for(i=0;i5;i+) puts(chi); 輸入:BASICC+CFortranPascal輸出:PascalFortranC+CBASIC25 大數(shù)分解(06秋) 我們?cè)凇坝?jì)算機(jī)科學(xué)導(dǎo)論”的期末考試中有一道試題。下面請(qǐng)你看看那題目應(yīng)該如何編寫。從鍵盤輸入的一個(gè)大于 1 的整數(shù),通過(guò)算法將該整數(shù)分解為若干因子的乘積。輸入:一個(gè)正整數(shù)。輸出:分解后的各個(gè)因子。開(kāi) 始輸入正整數(shù)ai=

25、2Y結(jié)束a=1?NNi+a/i=0?Ya=a/i輸出i程序?qū)嵗?:#include void main() int n,i; scanf(%d,&n); for(i=2;n1;) if(n%i=0) printf(%dn,i);n/=i; else i+; 輸入:24輸出:2223程序?qū)嵗?:#includestdio.h void main() int n,i; scanf(%d,&n); for(i=2;i=n;) if(n%i=0) printf(%dn,i); n/=i; continue; else i+; 輸入:15輸出:3526 鋪地板(選作)背景: 你是一名室內(nèi)裝潢工程隊(duì)的配料

26、員。你的伙伴們喜歡采用“之”字型的方式鋪大理石地磚,圖案如下:1 2 6 7 15 3 5 8 14 16 4 9 13 17 22 10 12 18 21 23 11 19 20 24 25 學(xué)了 C 語(yǔ)言以后,你決定編寫一個(gè)程序,幫助你的同伴生成這樣的圖形。輸入:方陣N的大小。輸出 方陣。程序?qū)嵗?:#includestdio.h int main() int a,i,j,k,x100100; scanf(%d,&a); x00=1; for(k=2,i=0,j=0;k=a*a;k+) if(i+1)%2=0&(j+1)%2=0)|(i+1)%2!=0&(j+1)%2!=0) if(i-1

27、0&j+1a-1) i+; else i-;j+; xij=k; else if(j-10&i+1a-1) j+; else i+;j-; xij=k; if(a*a=1) printf(1n); else for(i=0;ia;i+) for(j=0;ja;j+) if(a*a100) j=a-1?printf(%2dn,xij):printf(%2d ,xij); else j=a-1?printf(%3dn,xij):printf(%3d ,xij); return 0; 輸入:5輸出:12671535814164913172210121821231119202425程序?qū)嵗?:#inc

28、lude main() int i, j, n, a1010; scanf (%d,&n); a00=1; for ( i=0,j=1;jn;j+ ) aij=aij-1+(j=j/2*2)?2*j:1); for (i=1; in; i+) for (j=0; jn-1;j+) aij=(i+j)=(i+j)/2*2)?ai-1j+1-1:ai-1j+1+1); aij=ai-1j+(n-i)=(n-i)/2*2?1:(n-i)*2); if (n=1) printf(%d,a00); else for ( i=0;in;i+ ) printf(%2d,ai0); for ( j=1;jn;

29、j+ ) printf(%3d,aij); printf(n); return 0; 輸入:1輸出:127 編碼問(wèn)題(選作)(06秋)設(shè)有一個(gè)整形數(shù)組 A0.N-1;存放的元素為 0N-1 (1N0?Nilen?Y結(jié)束bi=caiYj=1 k=0保存Ki+更改數(shù)組CNji?i-Yajai?YK+Nj+程序?qū)嵗?:#include stdio.h void main( ) int i,j,t,n; int arr11,ans11= 0 ,num10; scanf(%d%d,&t,&n); for (i = 1;i = n;i +) scanf(%d,&arri); arr0 = 20; if (

30、t = 1) for (i = 1;i = n;i +) for (j = 1;j arrj) ansi +; else for (i = 0;i = 1;i -) ansi = numarri; for (j = arri;j = i - 1;j +) numj = numj + 1; for (i = 1;i n;i +) printf(%d ,ansi); printf(%dn,ansn); 輸入:16430512輸出: 000312程序?qū)嵗?:#include stdlib.h #include int cmp(const void *a, const void *b) return

31、*( int* ) a - *( int* ) b; void main() int mode,i,j,n,a13,b13,m13; scanf(%d%d,&mode,&n); for(i=0;in;i+) scanf(%d,&ai); if(mode=1) b0=0; for(i=1;in;i+) for(j=0,bi=0;ji;j+) if(ajai) bi+; else for(i=0;i=0;i-) bi=mai; mai=n; qsort(m,n,sizeof(int),cmp); for(i=0;in;i+) printf(%d%s,bi,i!=n-1? :); 輸入:270100

32、456輸出: 231045628 洗牌(選作)假設(shè)我們有 2n 張牌,它們以 1, 2, ., n, n+1, ., 2n 編號(hào)并在開(kāi)始時(shí)保持著這種順序。一次洗牌就是將牌原來(lái)的次序變?yōu)?n+1, 1, n+2, 2, ., 2n, n,也就是將原來(lái)的前 n 張牌放到位置 2, 4, ., 2n,并且將余下的 n 張牌按照他們?cè)瓉?lái)的次序放到奇數(shù)位置 1, 3, ., 2n-1。已經(jīng)證明對(duì)于任何一個(gè)自然數(shù) n,這 2n 張牌經(jīng)過(guò)一定次數(shù)的洗牌就回到原來(lái)的次序。但我們不知道對(duì)于一個(gè)特定的 n,需要幾次洗牌才能將牌洗回原來(lái)的次序。輸入:牌張數(shù)的一半n,即初始情況下一共有2n張牌輸出:將牌洗回原來(lái)的次序

33、所需要的洗牌次數(shù)開(kāi) 始輸入n02*n-1i, ia i K=1,i=0i2*n?in?i+b2*i=aiY02*n-1 i=a i ?NNK+,i=0YYN輸出kb2*(i-n)-1=ai結(jié)束i=2程序?qū)嵗?:#include int main( void ) int n; int count; int i; scanf( %d, &n ); i = 2; count = 1; while ( i != 1 ) if ( i n ) i = 2 * ( i - n - 1 ) + 1; else i = 2 * i; count +; printf( %dn, count ); return

34、0; 輸入:10輸出:6程序?qū)嵗?:#include stdio.h int main() long n,a=1,t=0; scanf(%ld,&n); do a=(t+,a=n?a*2:(a-n)*2-1); while(a!=1); printf(%ldn,t); return 0; 輸入:3輸出:329 掃雷(選做)背景 你玩兒過(guò)掃雷游戲吧?有個(gè)操作系統(tǒng)中帶了這個(gè)小游戲,那個(gè)系統(tǒng)叫什么來(lái)著?在游戲中要想過(guò)關(guān),就必須要在一個(gè) NxM 的區(qū)域上找出所有的地雷。游戲過(guò)程中,計(jì)算機(jī)會(huì)在地圖上顯示一些數(shù)字從而幫助你確定哪里有地雷。例如,在下面這個(gè)有兩顆地雷的 4x4 的地圖(*表示地雷): *.*

35、. 根據(jù)上面的地圖,可以計(jì)算出應(yīng)該提供給游戲者的數(shù)字如下所示: *10022101*101110 每個(gè)數(shù)字表示了該方格周圍到底有幾個(gè)地雷,當(dāng)然,一個(gè)方格周圍最多的時(shí)候只會(huì)有八個(gè)。 輸入: 輸入中將包括一系列的地圖,每個(gè)地圖的第一行有兩個(gè)整數(shù) n 和 m(0 n,m = 100),它們表示了地圖的行數(shù)和列數(shù)。下面的 n 行每行都有 m 個(gè)字符,其中 . 表示安全而 * 表示地雷。如果地圖的 n 和 m 都為 0,則表示輸入結(jié)束。 輸出 :針對(duì)每一個(gè)地圖,首先輸出一行: Field #x:其中 x 是當(dāng)前地圖的編號(hào)(從 1 開(kāi)始)。下面的 n 行則將地圖中的 . 以數(shù)字表示,該數(shù)字表示該方格周圍有

36、多少顆地雷。程序?qū)嵗?:#include stdio.h void main() int m,n,t,p,q,x,y,a200200; char c; t=1; scanf(%d%d,&m,&n); A: if(m=0) goto B; for(p=0;p=m;p+) for(q=0;q=n;q+) apq=0; for(p=0;pm;p+) for(q=0;q=n;q+) scanf(%c,&c); if(c=*) apq=-1; for(x=p-1;x=p+1;x+) for(y=q-1;y=0&x=0&y=n&axy!=-1) axy+; printf(Field #%d:n,t); f

37、or(p=0;pm;p+) for(q=1;q=n;q+) (apq=-1)?printf(*):printf(%d,apq); printf(n); scanf(%d%d,&m,&n); t+; if(m!=0) printf(n);goto A; B: ; 輸入:44*.*.35*.*.00輸出:Field#1:*10022101*101110Field#2:*100332001*100程序?qū)嵗?:#include int main(void) int f(int m,int n,int i,int j,char a100100); int m,n,i,j,b=0; char a100100; scanf(%d %d,&m,&n); while(m!=0&n!=0) b+;

溫馨提示

  • 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)論