C语言课程设计-保龄球积分.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计-保龄球积分

题目:保龄球计分 【问题描述】打保龄球是用一个滚球去撞击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.h void main() { FILE *fp; int sum1(int *k); int sum2(int *k); int a[10][10][2]; int sum[10][10]; int sum_person[10]={0,0,0,0,0,0,0,0,0,0}; int i,j,n,p; int b[10]={1,2,3,4,5,6,7,8,9,10},c; int *p1,*p2; char g[20],f[20],h[1]; 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++) /*一局内,输入每轮每次击打保龄球个数,保存到a[n][i][j]*/ { for (i=0;i=9;i++) { for(j=0;j=1;j++) { printf(请输入%d号选手第%d轮第%d次保龄球击打个数:,n+1,i+1,j+1); scanf(%d,a[n][i][j]); if (a[n][i][0]==10) { a[n][i][1]=0;break; } } } } for (n=0;n=9;n++) /*统计每人每局每轮得分,并相应赋值到sum_person[n],sum[n][i]*/ { for (i=0;i=9;i++) { p1=a[n][i][0];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) sum[n][i]=sum1(p1); else if (p==10) sum[n][i]=sum2(p1); else sum[n][i]=p; break; case 8: if (*p1==10||p==10) sum[n][i]=sum2(p1); else sum[n][i]=p;break; case 9: sum[n][i]=p;break; } } p2=sum[n][0]; for (j=0;j=9;j++) sum_person[n]= sum_person[n]+(*(p2+j)); } for (i=0;i=9;i++) /*十个选手得分排名*/ { for (n=i;n=9;n++) { if (sum_person[n]sum_person[i]) {c=sum_person[n]; sum_person[n]=sum_person[i]; sum_person[i]=c; c=b[n]; b[n]=b[i]; b[i]=c; } } } /*成绩输出到D:\\work\\bowling-grade.txt文件*/ if ((fp=fopen(D:\\work\\bowli

您可能关注的文档

文档评论(0)

cuotian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档