【问题描述】
在本台球游戏中,包含多种颜色的球,其中:红球15只各1分、黄球1只2分、绿球1只3分、咖啡球1只4分、蓝球1只5分、粉球1只6分、黑球1只7分。
球的颜色表示为:
r-红色球 y-黄色球 g-绿色球 c-咖啡色球 b-蓝色球 p-粉红球 B-黑色球
其中红球可能一次打进多个,且打进后不再摆回,其他球打进之后需要再摆回。
请计算n次击打之后总的得分。
【输入形式】
输入第一行为非负整数n,表示一个人进行了n次击打。
接下来为n次击打记录,每次记录有两种形式:
如果打进红球,则有两行, 第一行为r,第二行为一个整数(<=15),表示打进的红球个数
如果打进其他球,仅有一行,为ygcbpB中任意一个字符。
【输出形式】
输出一个整数,表示该人最终的得分。
【样例输入1】
5 r 3 g y r 1 B
【样例输出1】
16
【样例输入2】
5 c g y c B
【样例输出2】
20
#include <iostream>
using namespace std;
int main()
{
int n,sum,beat;
cin>>n;
char a; //输入的是单个字母,数据类型用char
for (int i=0; i<n; i++)
{
cin>>a;
switch (a){ //用switch处理较多种情况,记清楚switch应与case连用
case('r'):{ //冒号后的大括号可以省略,所有的都是
cin>>beat; //红球最特殊,再次输入打入个数
sum+=beat;
break;
}
case('y'):{
sum+=2;
break;
}
case('g'):{
sum+=3;
break;
}
case('c'):{
sum+=4;
break;
}
case('b'):{
sum+=5;
break;
}
case('p'):{
sum+=6;
break;
}
case('B'):{
sum+=7;
break;
}
}
}cout<<sum;
return 0;
}