1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > c语言保龄球计分系统课程设计 [C语言课程设计保龄球积分.doc

c语言保龄球计分系统课程设计 [C语言课程设计保龄球积分.doc

时间:2020-02-20 19:30:46

相关推荐

c语言保龄球计分系统课程设计 [C语言课程设计保龄球积分.doc

[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.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。