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以上分 我就寫。 這系統做出來都能當成品了,我說的沒錯吧。