版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 題目:保齡球計分</b></p><p> 【問題描述】打保齡球是用一個滾球去撞擊10個站立的瓶,將瓶擊倒。一局分10 輪,每輪可滾球1 次或多次,以擊到的瓶數(shù)為依據(jù)計分,一局得分為10輪得分之和,而每輪的得分不僅與本輪的滾球情況有關(guān),還可能與后一輪或兩輪的滾球情況有關(guān),即:某輪某次滾球擊倒的瓶數(shù)不僅要計入本輪得分,還可能會計入前一輪或兩輪得分。計分
2、規(guī)則如下: </p><p> 若某一輪的第一次滾球就擊倒全部10個瓶,則本輪不再滾球(若是第10輪還需加2次滾球),該輪得分為本次擊倒瓶數(shù)10與以后2次滾球所擊倒瓶數(shù)之和。</p><p> 若某一輪的第一次滾球未擊倒全部10個球,則對剩下未擊倒的瓶再滾球一次,如果這2次滾球擊倒全部10個瓶,則本輪不再滾球(若是第10輪還需加1次滾球),該輪得分為這2次擊倒瓶數(shù)10與以后1次滾球所擊
3、倒瓶數(shù)之和。</p><p> 若某一輪2次滾球未擊倒全部10個瓶,則本輪不在滾球,該輪得分為這2次滾球所擊倒瓶數(shù)之和。</p><p><b> 【實現(xiàn)提示】</b></p><p> 模擬10個人各打一局保齡球比賽過程,統(tǒng)計每局各輪得分和累計總分。</p><p> 逐人逐輪逐次輸入一次滾球擊倒的瓶數(shù)。<
4、;/p><p> 對10人的得分由低到高排序并顯示。</p><p> 最后,把排序的存入文件中。</p><p><b> 代碼:</b></p><p> /* Note:Your choice is C IDE */</p><p> #include "stdio.h&qu
5、ot;</p><p> #include "string.h"</p><p> #include "stdlib.h"</p><p> void main()</p><p><b> {</b></p><p><b> FILE
6、 *fp;</b></p><p> int sum1(int *k);</p><p> int sum2(int *k);</p><p> int a[10][10][2];</p><p> int sum[10][10];</p><p> int sum_person[10]={0,0
7、,0,0,0,0,0,0,0,0};</p><p> int i,j,n,p;</p><p> int b[10]={1,2,3,4,5,6,7,8,9,10},c;</p><p> int *p1,*p2;</p><p> char g[20],f[20],h[1];</p><p> char s
8、tr1[]={"As the rank and the score of each player shown below :\n"};</p><p> char str2[]={"RANK"};</p><p> char str3[]={"NO."};</p><p> char str4[]={
9、"SCORE"};</p><p> char str5[]={" "};</p><p> for (n=0;n<=9;n++) /*一局內(nèi),輸入每輪每次擊打保齡球個數(shù),保存到a[n][i][j]*/</p><p><b> {</b></p><p>
10、; for (i=0;i<=9;i++)</p><p><b> {</b></p><p> for(j=0;j<=1;j++)</p><p><b> {</b></p><p> printf("請輸入%d號選手第%d輪第%d次保齡球擊打個數(shù):",
11、n+1,i+1,j+1);</p><p> scanf("%d",&a[n][i][j]);</p><p> if (a[n][i][0]==10)</p><p><b> {</b></p><p> a[n][i][1]=0;break;</p><p
12、><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> for (n=0;n<=9;n++) /*統(tǒng)計每人每局每輪得分,并相應(yīng)賦值到
13、sum_person[n],sum[n][i]*/</p><p><b> {</b></p><p> for (i=0;i<=9;i++)</p><p><b> {</b></p><p> p1=&a[n][i][0];p=*p1+*(p1+1);</p>
14、;<p><b> switch(i)</b></p><p><b> {</b></p><p><b> case 0:</b></p><p><b> case 1:</b></p><p><b> case
15、2:</b></p><p><b> case 3:</b></p><p><b> case 4:</b></p><p><b> case 5:</b></p><p><b> case 6:</b></p>
16、<p><b> case 7:</b></p><p> if (*p1==10)</p><p> sum[n][i]=sum1(p1);</p><p> else if (p==10)</p><p> sum[n][i]=sum2(p1);</p><p><b
17、> else</b></p><p> sum[n][i]=p;</p><p><b> break;</b></p><p><b> case 8:</b></p><p> if (*p1==10||p==10) </p><p> su
18、m[n][i]=sum2(p1);</p><p><b> else</b></p><p> sum[n][i]=p;break;</p><p><b> case 9:</b></p><p> sum[n][i]=p;break;</p><p><b
19、> }</b></p><p><b> }</b></p><p> p2=&sum[n][0];</p><p> for (j=0;j<=9;j++)</p><p> sum_person[n]= sum_person[n]+(*(p2+j));</p>&
20、lt;p><b> }</b></p><p> for (i=0;i<=9;i++) /*十個選手得分排名*/</p><p><b> {</b></p><p> for (n=i;n<=9;n++)</p><p><b> {</b><
21、;/p><p> if (sum_person[n]>sum_person[i])</p><p> {c=sum_person[n];</p><p> sum_person[n]=sum_person[i];</p><p> sum_person[i]=c;</p><p><b> c=b
22、[n];</b></p><p> b[n]=b[i];</p><p><b> b[i]=c;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }<
23、/b></p><p> /*成績輸出到D:\\work\\bowling-grade.txt文件*/</p><p> if ((fp=fopen("D:\\work\\bowling-grade.txt","w"))==NULL) </p><p><b> {</b></p>
24、;<p> printf("cant open file!\n");</p><p><b> exit(0);}</b></p><p> fputs(str1,fp);fputs("\n",fp);</p><p> printf("比賽得分與排名如下:\n"
25、);</p><p> printf("排名: 選手: 得分:\n");</p><p> fputs(str2,fp);fputs(str5,fp);fputs(str3,fp);fputs(str5,fp);fputs(str4,fp);fputs("\n",fp);</p><p>
26、 for (n=0;n<=9;n++)</p><p><b> {</b></p><p> printf("第%d名: No.%d %d\n",n+1,b[n],sum_person[n]);</p><p> itoa(b[n],f,10);itoa(sum_person[n]
27、,g,10);itoa(n+1,h,10);</p><p> fputs(f,fp);fputs(str5,fp);</p><p> fputs(str3,fp);fputs(h,fp);fputs(str5,fp);</p><p> fputs(g,fp);fputs("\n",fp);</p><p>&l
28、t;b> }</b></p><p> fclose(fp);</p><p><b> } </b></p><p> int sum1(int *k) /*每輪第一次擊球=10時,得分規(guī)則*/</p><p><b> {</b></p>&
29、lt;p> int sum=0,m;</p><p> for(m=0;m<=5;m++)</p><p> sum+=(*(k+m));</p><p> return(sum);</p><p><b> }</b></p><p> int sum2(int *k)
30、 /*每輪兩次擊球之和=10時,得分規(guī)則*/</p><p><b> {</b></p><p> int sum=0,m;</p><p> for(m=0;m<=3;m++)</p><p> sum+=(*(k+m));</p><p> return(sum);&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保齡球計分系統(tǒng)c語言課程設(shè)計
- 保齡球計分系統(tǒng)c語言課程設(shè)計 (2)
- 【課程設(shè)計】c語言課程設(shè)計
- c語言課程設(shè)計
- c語言課程設(shè)計
- c語言課程設(shè)計
- c語言課程設(shè)計--c語言投票程序
- c語言課程設(shè)計課程報
- c語言課程設(shè)計題目
- c語言課程設(shè)計報告
- c語言課程設(shè)計報告
- c語言課程設(shè)計--迷宮
- c語言課程設(shè)計 (2)
- c語言課程設(shè)計范例
- c語言課程設(shè)計報告
- c語言程序課程設(shè)計
- c語言課程設(shè)計報告
- c語言課程設(shè)計---c語言小車動畫程序
- c語言語言課程設(shè)計報告
- c語言課程設(shè)計--圖像處理
評論
0/150
提交評論