(C/C++)1071 小赌怡情 (15 分)

简介: 常言道“小赌怡情”。这是一个很简单的小游戏:首先由计算机给出第一个整数;然后玩家下注赌第二个整数将会比第一个数大还是小;玩家下注 t 个筹码后,计算机给出第二个数。若玩家猜对了,则系统奖励玩家 t 个筹码;否则扣除玩家 t 个筹码。注意:玩家下注的筹码数不能超过自己帐户上拥有的筹码数。当玩家输光了全部筹码后,游戏就结束。

常言道“小赌怡情”。这是一个很简单的小游戏:首先由计算机给出第一个整数;然后玩家下注赌第二个整数将会比第一个数大还是小;玩家下注 t 个筹码后,计算机给出第二个数。若玩家猜对了,则系统奖励玩家 t 个筹码;否则扣除玩家 t 个筹码。


注意:玩家下注的筹码数不能超过自己帐户上拥有的筹码数。当玩家输光了全部筹码后,游戏就结束。


输入格式:


输入在第一行给出 2 个正整数 T 和 K(≤ 100),分别是系统在初始状态下赠送给玩家的筹码数、以及需要处理的游戏次数。随后 K 行,每行对应一次游戏,顺序给出 4 个数字:

n1 b t n2

其中 n1 和 n2 是计算机先后给出的两个[0, 9]内的整数,保证两个数字不相等。b 为 0 表示玩家赌小,为 1 表示玩家赌大。t 表示玩家下注的筹码数,保证在整型范围内。


输出格式:


对每一次游戏,根据下列情况对应输出(其中 t 是玩家下注量,x 是玩家当前持有的筹码量):


玩家赢,输出 Win t! Total = x.;

玩家输,输出 Lose t. Total = x.;

玩家下注超过持有的筹码量,输出 Not enough tokens. Total = x.;

玩家输光后,输出 Game Over. 并结束程序。


输入样例 1:


1. 100 4
2. 8 0 100 2
3. 3 1 50 1
4. 5 1 200 6
5. 7 0 200 8

结尾无空行


输出样例 1:


1. Win 100!  Total = 200.
2. Lose 50.  Total = 150.
3. Not enough tokens.  Total = 150.
4. Not enough tokens.  Total = 150.

结尾无空行


输入样例 2:


1. 100 4
2. 8 0 100 2
3. 3 1 200 1
4. 5 1 200 6
5. 7 0 200 8

结尾无空行


输出样例 2:


Win 100!  Total = 200.
Lose 200.  Total = 0.
Game Over.

结尾无空行


步骤:


1.设计一个结构体;

2.输入每个arr[i]的结构体的值;

3.在if-else的判断中确定条件;

4.解题成功;


注意点:


eg:Win 100!  Total = 200.

在!和T之间有两个空格(" ")


代码如下:


C语言:

#include <stdio.h>
struct four {//设计一个结构体
  int n1;
  int b;
  int t;
  int n2;
};
int main() {
  int T, K;
  scanf("%d%d", &T, &K);
  int total = T;
  struct four arr[K];
  for (int i = 0; i < K; i++)
    scanf("%d%d%d%d", &arr[i].n1, &arr[i].b, &arr[i].t, &arr[i].n2);//输入每个arr[i]的结构体的值
  for (int i = 0; i < K; i++) {
    if (total < arr[i].t)
      printf("Not enough tokens.  Total = %d.\n", total);//钱不够
    else {
      if ((arr[i].b == 0 && arr[i].n1 > arr[i].n2) || (arr[i].b == 1 && arr[i].n1 < arr[i].n2)) {
        printf("Win %d!  Total = %d.\n", arr[i].t, total);//赢的条件
        total += arr[i].t;
      } else if ((arr[i].b == 0 && arr[i].n1 < arr[i].n2) || (arr[i].b == 1 && arr[i].n1 > arr[i].n2)) {
        total -= arr[i].t;//输的条件
        printf("Lose %d.  Total = %d.\n", arr[i].t, total);
      }
    }
    if (total == 0) {//游戏结束的条件
      printf("Game Over.");
      break;
    }
  }
  return 0;
}

C++:

#include <iostream>
using namespace std;
struct four {//设计一个结构体
  int n1;
  int b;
  int t;
  int n2;
};
int main() {
  int T, K;
  cin >> T >> K;
  int total = T;
  struct four arr[K];
  for (int i = 0; i < K; i++)//输入每个arr[i]的结构体的值
    cin >> arr[i].n1 >> arr[i].b >> arr[i].t >> arr[i].n2;
  for (int i = 0; i < K; i++) {
    if (total < arr[i].t)
      cout << "Not enough tokens.  Total = " << total << "." << endl;//钱不够
    else {
      if ((arr[i].b == 0 && arr[i].n1 > arr[i].n2) || (arr[i].b == 1 && arr[i].n1 < arr[i].n2)) {
        total += arr[i].t;//赢的条件
        cout << "Win " << arr[i].t << "!  Total = " << total << "." << endl;
      } else if ((arr[i].b == 0 && arr[i].n1 < arr[i].n2) || (arr[i].b == 1 && arr[i].n1 > arr[i].n2)) {
        total -= arr[i].t;//输的条件
        cout << "Lose " << arr[i].t << ".  Total = " << total << "." << endl;
      }
    }
    if (total == 0) {//游戏结束的条件
      cout << "Game Over.";
      break;
    }
  }
  return 0;
}


相关文章
|
6月前
1002 A+B for Polynomials (25 分)
1002 A+B for Polynomials (25 分)
|
6月前
1062 最简分数 (20 分)
1062 最简分数 (20 分)
L1-070 吃火锅 (15 分)
L1-070 吃火锅 (15 分)
149 0
L1-070 吃火锅 (15 分)
7-9 包装机 (25 分)
7-9 包装机 (25 分)
115 0
7-9 包装机 (25 分)
L2-1 包装机 (25 分)
L2-1 包装机 (25 分)
152 0
L2-1 包装机 (25 分)
L3-011 直捣黄龙 (30 分)
L3-011 直捣黄龙 (30 分)
131 0
牛几 (10 分)
牛几 (10 分)
132 0
L1-054 福到了 (15 分)
L1-054 福到了 (15 分)
145 0
L1-014 简单题 (5 分)
L1-014 简单题 (5 分)
77 0
L1-055 谁是赢家 (10 分)
L1-055 谁是赢家 (10 分)
112 0