这是一道关于美式保龄球计分的一个小程序
保龄球计分规则简单总结如下:
-
每次游戏有10轮
-
每一轮,投手有两次投掷机会击倒所有瓶子 如果在两次投掷中,投手没有击倒所有瓶子,他在本轮分数计为两次击倒的瓶子数之和
-
如果在某一轮的首次就击倒所有瓶子,这称为一个“Strike”(一投全倒),则本轮结束,本轮分数计为10+后续两次击倒的瓶子总数
-
如果在某一轮次两次投球中击倒了所有瓶子,这称为一个"Spare"(二投全倒),本轮分数计为10+下一次投掷(下一轮次里的首次投掷)所击倒的瓶子数
-
如果在第10轮投出一个Spare或Strike,投手将分别赢得1次或2次投掷奖励机会。这些奖励的投掷是作为同一轮的一部分。如果奖励投掷击倒所有瓶子,则整个过程结束。奖励投掷仅用于计算最后一轮的得分。
游戏总分=所有轮次分数总和
我在此感谢 “故事的撰写人” 这位码友
十分感谢他指出了我第一版代码中出现的一些错误,下面是我更正之后的第二版代码,也欢迎更多的小伙伴来相互交流和学习😀♥
#include <stdio.h>
#include <stdlib.h>
int getpoint[10];
void Judge(int num)
{
if(num<0||num>10)
{
printf("输入的数据有误!");
exit(-1);
}
}
void Print(int scores[20][2])
{
//行最少 = 10行,列 = 2
printf("这个人对应的成绩数组为:\n");
for(int i=0;i<20;i++)
{
for(int j=0;j<2;j++)
{
if(scores[i][0]!=-1)
{
printf("%d ",scores[i][j]);
}
}
putchar('\n');
}
}
void Initarray(int scores[20][2],int getpoint[10])//初始化
{
for(int i=0;i<20;i++)
{
for(int j