C语言课程设计-保龄球积分.doc_第1页
C语言课程设计-保龄球积分.doc_第2页
C语言课程设计-保龄球积分.doc_第3页
C语言课程设计-保龄球积分.doc_第4页
C语言课程设计-保龄球积分.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

题目:保龄球计分【问题描述】打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。一局分10 轮,每轮可滚球1次或多次,以击到的瓶数为依据计分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。计分规则如下: 若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。 若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。 若某一轮2次滚球未击倒全部10个瓶,则本轮不在滚球,该轮得分为这2次滚球所击倒瓶数之和。【实现提示】 模拟10个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。 逐人逐轮逐次输入一次滚球击倒的瓶数。 对10人的得分由低到高排序并显示。 最后,把排序的存入文件中。代码:/* Note:Your choice is C IDE */#include stdio.h#include string.h#include stdlib.hvoid main()FILE *fp; int sum1(int *k); int sum2(int *k); int a10102; int sum1010; int sum_person10=0,0,0,0,0,0,0,0,0,0; int i,j,n,p; int b10=1,2,3,4,5,6,7,8,9,10,c; int *p1,*p2;char g20,f20,h1;char str1=As the rank and the score of each player shown below :n;char str2=RANK;char str3=NO.;char str4=SCORE;char str5= ; for (n=0;n=9;n+) /*一局内,输入每轮每次击打保龄球个数,保存到anij*/ for (i=0;i=9;i+) for(j=0;j=1;j+) printf(请输入%d号选手第%d轮第%d次保龄球击打个数:,n+1,i+1,j+1); scanf(%d,&anij); if (ani0=10) ani1=0;break; for (n=0;n=9;n+) /*统计每人每局每轮得分,并相应赋值到sum_personn,sumni*/ for (i=0;i=9;i+) p1=&ani0;p=*p1+*(p1+1); switch(i) case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: if (*p1=10) sumni=sum1(p1); else if (p=10) sumni=sum2(p1); else sumni=p; break; case 8: if (*p1=10|p=10) sumni=sum2(p1); else sumni=p;break;case 9: sumni=p;break; p2=&sumn0; for (j=0;j=9;j+) sum_personn= sum_personn+(*(p2+j);for (i=0;i=9;i+) /*十个选手得分排名*/ for (n=i;nsum_personi) c=sum_personn; sum_personn=sum_personi; sum_personi=c; c=bn; bn=bi; bi=c; /*成绩输出到D:workbowling-grade.txt文件*/if (fp=fopen(D:workbowling-grade.txt,w)=NULL) printf(cant open file!n);exit(0);fputs(str1,fp);fputs(n,fp);printf(比赛得分与排名如下:n);printf(排名: 选手: 得分:n);fputs(str2,fp);fputs(str5,fp);fputs(str3,fp);fputs(str5,fp);fputs(str4,fp);fputs(n,fp);for (n=0;n=9;n+) printf(第%d名: No.%d %dn,n+1,bn,sum_personn); itoa(bn,f,10);itoa(sum_personn,g,10);itoa(n+1,h,10);fputs(f,fp);fputs(str5,fp);fputs(str3,fp);fputs(h,fp);fputs(str5,fp);fputs(g,fp);fputs(n,fp);fclose(fp); int sum1(int *k) /*每轮第一次击球=10时,得分规则*/int sum=0,m;for(m=0;m=5;m+)sum+=(*(k+m);ret

温馨提示

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

评论

0/150

提交评论