趣味保龄球比赛规则积分规则的编程

老鸟救命~关于保龄球记分规则的程序_编程吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:173,285贴子:
老鸟救命~关于保龄球记分规则的程序收藏
快试试吧,可以对自己使用挽尊卡咯~◆◆
老鸟救命~关于保龄球记分规则的程序&&
&今天老师给我们留的作业,让我们在4天内完成。要求用C语言完成,菜鸟我实在是想不出来了。求求老鸟们帮帮忙。以下是规则:小菜在这里谢谢老鸟了。&
1.保龄球是以局为单位,以击倒球瓶数的多少来计分并决定胜负的。一局分为10轮,每轮有两次投球的机会。如果在一轮中,第一次投球就把10个球瓶全部击倒,即全中,就不能再投第二次。唯有第10轮不同,第一次投球如果投得全中,仍要继续投完最后一球,结束全局。值得强调的是,如果两次投球没有将10个瓶全部击倒,那么第三次机会就会被自动取消。&
 2.保龄球比赛时,均以6局总分累计决定名次。&
  (1)单人赛:将每一局的成绩相加,以6局总分最高者为冠军,次者为亚军,再次为第三名。&
  (2)双人赛:每人6局,以二人合计12局累计总分高低决定名次。&
  (3)三人赛:每人6局,以三人合计18局累计总分高低决定名次。&
&
快试试吧,可以对自己使用挽尊卡咯~◆◆
#include&stdio.h&
#define&N&13
struct&{&int&n;&/*&一轮内滚球次数&*/
int&f;&/*&第一次击倒柱数&*/
int&s;&/*&第一次击倒柱数&*/
int&&/*&本轮得分&*/
int&/*&至本轮累计总分&*/
int&m;&/*&完成本轮得分计算,还需滚球次数&*/
}&a&[N];
int&ok&=&0;&/*&已完成完整计算的轮次数&*/
int&ball(int&i,&int&n,&int&max)&/*&完成一次滚球,输入正确击倒柱数&*/
{&int&d,&j,&k;&static&c&=&1;
while(1)
{&if&(i&&=&10)
printf(&&输入第&%d&轮的第&%d&次滚球击倒柱数。(&=&%d)\n&,&i,&n,&max);
else
printf(&&输入附加的第&%d&次滚球击倒柱数。(&=&%d)\n&,&C++,&max);
scanf(&%d&,&&d);
if&(d&&=0&&&&d&&=&max)&
printf(&&不合理的击倒柱数,请重新输入。\n&);
}
if&(ok&&&i-1)
{&/*&对以前未完成计算的轮次分别计算得分与累计总分&*/
for(j&=&ok+1;j&i;&j++)
{&a[j].score&+=&d;
if&(--a[j].m&==&0)
{&a[j].total&=&(j&1?a[j-1.total:0])&+&a[j].&ok&++;}
}
}
return&d;
}
main()
{&int&i,&/*&轮次&*/&first,&second,&k;
for(i&=&1;&ok&&&10;&i++)
{&/*&处理第一次滚球&*/
a[i].score&=&a[i].f&=&first&=&ball(i,1,10);
if&(first&==&10)&a[i].m&=&2;
a[i].n=1;
if&(first&&&10&&&&(i&&=&10&||&i&==&11&&&&ok&&&10&))
{&/*&处理第二次滚球*/
a[i].score+=a[i].s&=&second&=&ball(i,2,10-first);
if&(first&+&second&==&10)&a[i].m&=&1;
a[i].n++;
}
if&(i&&=&10&&&&first&&&10&&&&fist&+&second&&&10)
{&a[i].total&=&(i&&&1&?&a[i-1].total&:&0)&+&a[i].
ok=i;
}
printf(&&&各轮第一次得分&);
for(k&=&1;&k&&=&1;&k++)&printf(&%5d&,&a[k].f);
printf(&\n&各轮第二次得分&&);
for(k=1;&k&&=&i;&k++)
if&(a[k].n&&&2)&printf(&&/&);&else&printf(&%5d&,&a[k].s);
printf(&\n&各轮得分&&);
for(k&=&1;&k&&=&&k++)&printf(&%5d&,&a[k].score);
printf(&\n&累计总分&&);
for(k&=&1;&k&&=&&k++)&printf(&%5d&,&a[k].total);
printf(&\n\n&);
}
}

登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或打保龄球问题的解决方法
打保龄球问题的解决方法
  今天我们一来看看一个实例,打保龄大家应该很多人都打过吧,没打过保龄球的应该也在电视里看别人打过吧,今天我们要说的实例就是和打保龄球有关的,好了,话不多说了,一来看实例吧!
  打保龄球是用一个滚球去打击十个站立的柱,将柱击倒。一局分十轮,每轮可滚球一次或多次,以击倒的柱数为依据计分。一局得分为十轮得分之和,而每轮的得分不仅与本轮滚球情况有关,还可能与后续一两轮的滚球情况有关。即某轮某次滚球击倒的柱数不仅要计入本轮得分,还可能会计入前一两轮得分。具体的滚球击柱规则和计分方法如下:
  (1)若某一轮的第一次滚球就击倒全部十个柱,则本轮不再滚球(若是第十轮则还需另加两次滚球,不妨称其为第十一轮和第十二轮,并不是所有的情况都需要滚第十一轮和第十二轮球)。该轮得分为本次击倒柱数10与以后两次滚球所击倒柱数之和。
  (2)若某一轮的第一次滚球未击倒十个柱,则可对剩下未倒的柱再滚球一次。如果这两次滚球击倒全部十个柱,则本轮不再滚球(若是第十轮则还需另加一次滚球),该轮得分为这两次共击倒柱数10与以后一次滚球所击倒柱数之和。
  (3)若某一轮两次滚球未击倒全部十个柱,则本轮不再继续滚球,该轮得分为这两次滚球击倒的柱数之和。
  总之,若―轮中一次滚球或两次滚球击倒十个柱,则本轮得分是本轮首次滚球开始的连续三次滚球击倒柱数之和(其中有一次或两次不是本轮滚球)。若一轮内二次滚球击倒柱数不足十个,则本轮得分即为这两次击倒柱数之和。下面以实例说明如下(字符“/”表示击倒当前球道上的全部的柱):
  轮 1 2 3 4 5 6 7 8 9 10 11 12
  击球情况 / / / 72 9/ 81 8/ / 9/ / 8/
  各轮得分 30 27 19 9 18 9 20 20 20 20
  累计总分 30 57 76 85 103 112 132 152 172 192
  现在请你编写一个保龄球实时计分程序,用来计算和显示某轮结束后的得分情况。若某轮的得分暂时无法算出,则该轮得分不显示。
  输入数据用文件bowling.in,文件内容仅有一行,为前若干轮滚球的情况,每轮滚球用一到两个字符表示,每一个字符表示一次击球,字符“/”表示击倒当前球道上的全部的柱,否则用一个数字字符表示本次滚球击倒的当前球道上的柱的数目,两轮滚球之间用一个空格字符隔开。
  如上例对应的输入文件内容为:/ / / 72 9/ 81 8/ / 9/ / 8/
  Output
  输出到文件bowling.out,共两行,第一行为每轮得分,第二行为到当前轮为止的总得分。每个得分之间用一个空格隔开。
  Sample Input
  /&&& /&&& /&& 72&&& 9/&& 81&& 8/&&& /&&& 9/&&& /&& 8/
  Sample Output
  30&& 27& 19&&& 9&& 18&&& 9&& 20&& 20&& 20&& 20 30&& 57& 76&& 85& 103& 112& 132& 152& 172& 192
  */#include &stdio.h&#include &string.h&#define MAX 21
  int main(void){&&& char c,st[MAX];&&& int a[MAX]={0},b[MAX]={0};&&& int i,j,total=0,t=0,now=0,&&& while( (c=getchar())!= ’ ’)&&& {&&&&&&&&&& if(c != ’ ’)&&&&&&&&&& st[++t]=&&& }
  for(i=1,j=1;& i&=10; i++)&&& {&&&&&&& if(st[j] == ’/’)&&&&&&& {&&&&&&&&&& now = 10 ;&&&&&&&&&& if(st[j+1] == ’/’)&&&&&&&&&& {&&&&&&&&&&&&&&&&& now += 10 ;&&&&&&&&&&&&&&&&& if(st[j+2] == ’/’)&&&&&&&&&&&&&&&&& now += 10 ;&&&&&&&&&&&&&&&&& else&&&&&&&&&&&&&&&&& now += st[j+2]-’0’ ;&&&&&&&&&& }else&& /*考虑后面的性况是否是连续的*/&&&&&&&&&& {&&&&&&&&&&&&&&& if(st[j+2] == ’/’) [Page]&&&&&&&&&&&&&&& now += 10 ;&&&&&&&&&&&&&&& else&&&&&&&&&&&&&&& now += st[j+1]-’0’+ st[j+2]-’0’ ;&&&&&&&&&& }
  j += 1 ;&&&&&&& }
  else&&&&&&& {
  if(st[j+1] ==’/’)&&&&&&&&&&& {&&&&&&&&&&&&&&&&&& if(st[j+2] == ’/’)&&&&&&&&&&&&&&&&&& now = 20 ;&&&&&&&&&&&&&&&&&& else&&&&&&&&&&&&&&&&&& now = 10 +& st[j+2]-’0’ ;&&&&&&&&&&& }&&&&&&&&&&& else&&&&&&&&&&& now =& st[j]-’0’+& st[j+1]-’0’ ;
  j += 2 ;&&&&&&& }
  total +=&&&&&&& a[i] =&&&&&&& b[i] =&&& } [Page]
  for(i=1 ; i&= 10 ; i++)&&& printf(\"%d \",a[i]);&&& printf(\" \");&&& for(i=1 ; i&= 10 ; i++)&&& printf(\"%d \",b[i]);&&& printf(\" \");
  return 0 ;}
  #include &stdio.h&#include &string.h&#define MAX 21
  int count(char ch){&&& if( ch == ’/’)&&& return 10 ;&&& else&&& return (ch-’0’);}
  int main(void){&&& char c,st[MAX];&&& int a[MAX]={0},b[MAX]={0};&&& int i,j,total=0,t=0,now=0,&&& while( (c=getchar())!= ’ ’)&&& {&&&&&&&&&& if(c != ’ ’)&&&&&&&&&& st[++t]=&&& }
  for(i=1,j=1;& i&=10; i++)&&& {&&&&&&& if(st[j] == ’/’)&&&&&&& {&&&&&&&&&& now = 10 ;&&&&&&&&&& if(st[j+1] == ’/’)&&&&&&&&&& now += 10+count(st[j+2]) ;else&& /*考虑后面的性况是否是连续的*/&&&&&&&&&& {&&&&&&&&&&&&&&& if(st[j+2] == ’/’)&&&&&&&&&&&&&&& now += 10 ;&&&&&&&&&&&&&&& else&&&&&&&&&&&&&&& now += count(st[j+1])+count(st[j+2]) ; [Page]&&&&&&&&&& }
  j += 1 ;&&&&&&& }
  else&&&&&&& {
  if(st[j+1] ==’/’)&&&&&&&&&&& now = 10 + count(st[j+2]);&&&&&&&&&&& else&&&&&&&&&&& now = count(st[j]) + count(st[j+1]);
  j += 2 ;&&&&&&& }
  total +=&&&&&&& a[i] =&&&&&&& b[i] =&&& }
  for(i=1 ; i&= 10 ; i++)&&& printf(\"%d \",a[i]);&&& printf(\" \");&&& for(i=1 ; i&= 10 ; i++)&&& printf(\"%d \",b[i]);&&& printf(\" \");&&& printf(\"/=%d\",’/’);&&& system(\"pause\");&&& return 0 ;}
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
职称考试题目
招生信息考研政治
网络安全安全设置工具使用手机安全
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&&&保龄球规则计算分数
&保龄球规则计算分数
保龄球规则介绍:
一局(GAME)保龄球分为10格,每格里有两次投球机会,如在第一次投球时全中,就没有需要投第二球。每一格可能出现三种情况:
1.失球(MISS)
无论何种情况,在一格的两次投球时,未能击倒10个瓶,此格的分数为击倒的瓶数, 一个未击中用 (-) 0符号表示。
2.补中(SPARE)
当第二次投球击倒该格第一球余下的全部瓶子,称为补中,用一个(/)符号表示。补中的记分是10分加上一次投球击倒的瓶数。
3.全中(STRIKE)
当每一格的第一次投球击倒全部竖立的十个瓶时,称为全中,用一个(X)符号表示。全中的记分是10分加该球员下两次投球击倒的瓶数。
但在第十格中情况比较特殊:
(1) 如果全中,则追加二次投球机会,第十格得分为10分加上追加的两次击倒的瓶数。因此从第一格到第十格的两次追加投球,都为全中,则为12个全中,得分为满分300分
(2)如果补中,则追加一次投球机会,第十格得分为10加上追加一次投球击倒瓶数。
(3)如果失球,不追加。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
保龄球规则计算分数
所需积分:0
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
保龄球规则计算分数
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员

我要回帖

更多关于 趣味保龄球比赛规则 的文章

 

随机推荐