这题太坑爹了。注意空格。
实际上程序运行时测试点里输、赢 和 筹码不够 的Total前都有两个空格。
Win 100! Total = 200.//注意这里Total前有2个空格
Lose 50. Total = 150.//注意这里Total前有2个空格
Not enough tokens. Total = 150.//注意这里Total前有2个空格
Game Over.这中间只有一个空格。
Game Over.//这里Over前面只有一个空格
#include <iostream>
using namespace std;
int main()
{
int beginT;//赠送给玩家的筹码数
int k;//需要处理的游戏次数
int n1;//计算机给的第一个整数
int n2;//计算机给的第二个整数
int b;//0 表示玩家赌小。为 1 表示玩家赌大
int t;//玩家下注的筹码数
int sumT;//玩家拥有的筹码数量
cin>>beginT>>k;
sumT=beginT;
for(int i=0; i<k ;i++)
{
cin>>n1>>b>>t>>n2;
if(sumT==0)// 玩家输光后,输出 Game Over. 并结束程序。
{
//【有1个空格】
printf("Game Over.");
break;
}
else//(sumT>0)还有筹码,可以继续玩
{
if(sumT>=t)//玩家下注 不超过 持有的筹码量
{
if(b==0)//玩家赌小的
{
if(n2<n1)//计算机给的小,玩家赢了
{
sumT=sumT+t;
//【有2个空格】
printf("Win %d! Total = %d.\n",t , sumT ) ;
}
else if(n2>n1)//计算机给的大,玩家输了
{
sumT=sumT-t;
//【有2个空格】
printf("Lose %d. Total = %d.\n",t , sumT ) ;
}
}
if(b==1)//玩家赌大的
{
if(n2<n1)//计算机给的小 ,玩家输了
{
sumT=sumT-t;
//【有2个空格】
printf("Lose %d. Total = %d.\n",t , sumT ) ;
}
else//计算机给的大 ,玩家赢了
{
sumT=sumT+t;
//【有2个空格】
printf("Win %d! Total = %d.\n",t , sumT ) ;
}
}
}
else//下注超过持有的筹码量,没有足够的筹码
{
//【有2个空格】
printf("Not enough tokens. Total = %d.\n",sumT);
}
}
}
return 0;
}