当前位置:首页 » 编程语言 » c语言保龄球计分
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言保龄球计分

发布时间: 2022-02-24 21:53:23

A. 保龄球怎么计分那个X和/是什么意思啊

“X”:当每一个格的第一次投球击倒全部竖立的十个瓶子时,称为全中。用(X)符号记录在记分表上该格上方右边的小方格中。

“/”:当第二次投球击倒该格第一个球余下的 全部瓶子,称为补中,用(/)表示。

计分规则:

共有十支球瓶,要尽量在两球之内把球瓶全部击倒,如果第一球就把全部的球瓶都击倒了,也就是“STRIKE”,画面出现“X”,就算完成一格了,所得分数就是10分再加下两球的倒瓶数。

但是如果第一球没有全倒时,就要再打一球,如果剩下的球瓶全都击倒,也就是“SPARE”,画面出现“/”,也算完成一格,所得分数为10分再加下一格第一球的倒瓶数,但是如果第二球也没有把球瓶全部击倒的话,那分数就是第一球加第二球倒的瓶数,再接着打下一格。

依此类推直到第十格。但是第十格有三球,第十格时如果第一球或第二球将球瓶全部击倒时,可再加打第三球。

(1)c语言保龄球计分扩展阅读:

运动员合法投球后球瓶的下列情况,将被认为是合法击倒球瓶:

(1) 被球和其他瓶直接击倒或击出放瓶台之瓶。

(2) 被从两侧边墙隔板或球道后部缓冲板反弹回来的瓶所击倒或击出放瓶台之瓶,均作为击倒之瓶计算。

(3) 在清扫球瓶之前被扫瓶器横杆反弹回来的瓶所击倒或击出放瓶台之瓶。

(4) 斜靠在边墙隔板上之瓶。

参考资料来源:网络——保龄球

B. c语言编程:保龄球问题

记分函数我不太懂所以没有写
struct
strike
{
int
first;
int
second;
struct
strike
*next;
};
struct
strike
*creat()
{
struct
strike
*head;
struct
strike
*p;
struct
strike
*last;
int
n=0;
while(n++<11)
{
p=(struct
strike*)malloc(sizeof(struct
strike));
if(head=NULL)
head=p;
else
last->next=p;
last=p;
}
return
head;
}
void
setScore(struct
strike
*head)
{
struct
strike
*p;
p=head;
int
n=0;
int
num;
int
num2;
while(n++<10)
{
printf("qing
shuru
%n
ju
de
diyicichengji:",n+1);
scanf("%d",&num);
p->first=num;
if(num==10)
{
p++;continue;
}
else
{
printf("qing
shuru
%n
ju
de
diyierchengji
fenshuxiaoyu%n:",n+1,10-num);
scanf("%d",&num2);
p->second=num2;
p++;
}
}
p--;
if(p->first==10)
{
scanf("%d",&num);
p->next->first=num;
if(num==10)
p->next->second=0;
else{
scanf("%d",&num2);
p->next->second=num2;
}
else
{
if(p->first+p->second==10)
{
scanf("%d",&num);
p->next->first=num;
p->next->second=0;
}
}
}
}

C. C语言里,保龄球问题

以下程序已通过调试^_^
楼主可以自己用数据试试

/*保龄球输入:按分数个个输入,比如:第一轮:10,第二轮:9和1,第三轮:7和2……于是输入:10 9 1 7 2……*/
/*输出:每轮得分一个数,比如:20 17 9……*/

#include <stdio.h>
#include <string.h>
int main()
{
int a[10],b[10],c[10];
/*a[]用来记每轮得分,b[]用来记每轮得到的奖励次数,c[]用来记每轮的最多击球次数(其实就是最后一轮为3)*/
int i,j,k,x;
/*初始化*/
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for (i=0;i<9;i++) c[i]=2;
c[i]=3;
/*输入*/
for (i=0;i<10;i++)
{
/*每轮的数据输入*/
for (j=0;j<c[i]&&a[i]<10;j++)
{
scanf("%d",&x);
a[i]+=x;
/*奖励分*/
for (k=2;k>0;k--)
if (b[i-k]) {b[i-k]--;a[i-k]+=x;}
}
/*记录每轮的奖励次数*/
if (a[i]==10)
{
if (j==1) b[i]=2;
else b[i]=1;
}
}
/*输出每轮总分数*/
for (i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}

D. C语言问题。帮我解释一下这个程序的意思,要详细。保龄球计分系统里的一段代码。

有点意思。。。。

E. 求C语言代码解释(保龄球记分程序)

#include <stdio.h> //包含基本输入输出头文件
#define N 13 //宏定义13为N(N就是数字13)
struct { int n: /* 一轮内滚球次数 */
int f; /* 第一轮击倒柱数 */
int s; /* 第二次击倒柱数 */
int score; /* 本轮得分 */
int total; /* 至本轮累计总分 */
int m; /* 完成本轮得分计算, 还需要滚球次数 */
} s[N];//结构体
int ok = 0; /* 已完成完整计算的轮次数 */
int ball(int i, int n, int max) /* 完成一次滚//定义函数球, 输入正确击倒柱数 */
{ if (i<= 10) //如果 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) break; 如果 d大于等于0并且d小于等于max 中断
printf("不合理的击倒柱数, 请重新输入, \n"); //输出
}
if ( OK< c-1) 如果ok小于 c-1
{ /* 对以前未完成计算的轮次分别计算得分与累计总分 */
for (j = ok+1; j<i/j<=i-1; j++) j初始化为ok+1 每次循环加一,当j小于...错误
{a[j].scre+=d; a[j].scre=a[j].scre+d
if (--a[j].m==0) [j].m 减1 如果[j].m等于0
那么
{//错误
a[j]. total = (j>i?a[j-1].total(:0/)j==1?0;a[j-1].total)+a[j].score;ok=j/ok+1;}
a[j]. total =
}
}
return d; 返回d
}
main0
{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=score=ball(i,2,10-first);
if(first+second==10) a[i].m=1;
a[i].n++/a[i].n=a[i].n+1/a[i].n=2 //错误
}
if (i <=10 && first <10 && first+second < 10)
{ a[i].total = (i>1 ? a[i-1].total:0)+a[i].score;
ok=1;
}
printf("各轮第一次得分");
for(k=1; k<=i; 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<= ok; k++) printf("%5d", a[k].score);
printf("\n 累计总分 ");
for(k=1; k <= ok; k++) printf("%5d", a[k].total);
printf("\n\n");
}
}

F. 保龄球计分代码

保龄球规则的c++代码
规则如下:
保龄球一场共10局,每一局最多打2球,至少打1球。
每一局共有10个瓶子,击倒一个瓶子得1分。若第1局到第9局的第一个球击倒10个瓶子(全倒),
则跳入下一局,不需要打第2个球。
若第10局的第1个球击倒10个瓶子,或者第10局的2个球加起来击倒10个瓶子(补中),
则第10局可以打第3个球。
保龄球10局最少打11个球,最多打21个球。
计分方式若该局中第1球击倒10个瓶子,则本局分数加计下两球的分数;
若一局中第1球加第2球共击倒10个球则本局分数会加计下局第1球的分数;
若一局2球没有击倒10个瓶子,该局只计击倒瓶子的分数。
*///***********************************************************************************/
#include <iostream>
using namespace std;

struct pacegame//每局规则
{
int bt[3];
signed short score;//总分
};

static pacegame Arr[10];

void main()
{
cout<<"****************************************************************************"<<endl;
cout<<"* *"<<endl;
cout<<"* 欢迎您使用保龄球计分系统! *"<<endl;
cout<<"* *"<<endl;
cout<<"****************************************************************************"<<endl;
cout<<"* (请根据提示输入每局击瓶数) *"<<endl;
cout<<"****************************************************************************"<<endl;
for (int i=0; i<10; i++)
{
for (int j=0; j<3; j++)
Arr[i].bt[j]=0;
Arr[i].score=0;
}
char exit='\0';
cout<<"正否开始新的一局?(任意键开始!Ctrl+Z退出!)"<<endl;
while ((exit=cin.get())!=EOF)
{
for (i=0; i<10; i++)
{
for (int j=0; j<2; j++)
{
cout<<"第"<<i+1<<"局第"<<j+1<<"球击倒瓶数: "<<endl;
cin>>Arr[i].bt[j];
Arr[i].bt[j]=Arr[i].bt[j]%11;
if (1==j)
{
if ((Arr[i].bt[0]+Arr[i].bt[1])>10)
Arr[i].bt[j]=10-Arr[i].bt[0];
}
if ((10==Arr[i].bt[j]||10<=(Arr[i].bt[0]+Arr[i].bt[1])))
{
if (9==i)
{
cout<<"最后一局全部击倒!追加一球!"<<endl;
cout<<"追加球击倒瓶数: "<<endl;
cin>>Arr[i].bt[2];
Arr[i].bt[2]=Arr[i].bt[2]%11;
break;
}
else
{
if (0==j) Arr[i].bt[2]=-2;
if (1==j) Arr[i].bt[2]=-1;
cout<<"恭喜你!全倒!进入下一局。"<<endl;
break;
}
}
}
}
//统计分数:
cout<<"*--------------------本局比赛结束!统计如下:--------------------------*"<<endl;
int sum=0;
for (i=0; i<10; i++)
{
cout<<"第"<<i+1<<"局统计数据:"<<endl;
switch (Arr[i].bt[2])
{
case -1:
Arr[i].bt[2]=Arr[i+1].bt[0];
break;
case -2:
Arr[i].bt[2]=Arr[i+1].bt[0]+Arr[i+1].bt[1];
break;
}
Arr[i].score=Arr[i].bt[0]+Arr[i].bt[1]+Arr[i].bt[2];
cout<<"第一球击倒: "<<Arr[i].bt[0]<<" | "<<"第二球击倒: "<<
Arr[i].bt[1]<<" | "<<"追加分: "<<Arr[i].bt[2]<<
" | "<<"共计: "<<Arr[i].score<<endl;
sum+=Arr[i].score;
cout<<"----------------------------------------------------------------"<<endl;
}
cout<<"本场总得分: "<<sum<<endl;
////////////////////////////////////////////////////////
cout<<"正否开始新的一局?任意键开始!Ctrl+Z退出!"<<endl;
cin.get(exit);
}
cout<<"****************************************************************************"<<endl;
cout<<"* (感谢使用!再见!) *"<<endl;
cout<<"****************************************************************************"<<endl;
}

G. 保龄球积分C语言程序

时间不太够,只能写一部分代码,然后给你思路了,先抱歉。下面是代码:
#include<stdlib.h>
static int a[1000] = {0};

main()
{
int i;
for(i = 0; i< 1000; i++)
{
a[i] = (int)(999*rand())/(RAND_MAX + 1.0); //产生随机数并写入数组中。
printf("%d\n", a[i]); //打印

}

H. 求C语言的保龄球积分算法!在线等!

#include<stdio.h>

void mark(int p[ ][4],int n){ /*定义计分函数*/

if(n==9)

p[n][2]=p[n][0]+p[n][1]+p[n+1][0]+p[n+1][1];

else{

if(p[n][0]==10){

if(p[n+1][0]!=10)

p[n][2]=10+p[n+1][0]+p[n+1][1];

else

p[n][2]=10+p[n+1][0]+p[n+2][0];

}

else if(p[n][0]+p[n][1]==10)

p[n][2]=10+p[n+1][0];

else if(p[n][0]+p[n][1]<10)

p[n][2]=p[n][0]+p[n][1];

}

}

void main(){

int a[11][4]={0};

int i;

printf("请输入10轮中的每一轮第一次滚球击倒的瓶数:\n");

for(i=0;i<10;i++)

scanf("%d",&a[i][0]);

printf("请输入10轮中的每一轮第二次滚球所击倒的瓶数,若本轮第一次滚球击倒10个,则第二次请输入0:\n");

for(i=0;i<10;i++)

scanf("%d",&a[i][1]);

printf("请输入10轮以后两次滚球所击倒的瓶数,若只能滚一次球,则第二项数据输入0,若一次都不能滚,则两次都输入0:\n");

scanf("%d%d",&a[10][0],&a[10][1]);

for(i=9;i>=0;i--)

mark(a,i);

for(i=0;i<10;i++){

if(i==0)

a[i][3]=a[i][2];

else

a[i][3]=a[i-1][3]+a[i][2];

}

printf("轮数 本轮得分 累计得分 \n");

for(i=0;i<10;i++)

printf("%-13d%-13d%-13d\n",(i+1),a[i][2],a[i][3]);

// system("pause");

}

I. 程序设计——保龄球分数计算

规则细节你加我qq告诉我吧,能帮到你一定帮 23824056

J. c语言保龄球分数计算系统

这么麻烦的题目,你给的分数太少了, 哈哈, 你要是追加50以上分 我就写。 这系统做出来都能当成品了,我说的没错吧。