数数小绵羊(C++)

Description:

人与龙和谐相处的博克岛上正在举办喜羊羊版的魁地奇(魁地奇是《哈利·波特》系列中重要的空中团队对抗运动 Quidditch的中文译名,是魔法世界中由巫师们骑着飞天扫帚参加的球类比赛),龙骑士们通过抓羊和把羊投入篮筐来得分,如果能抓到皮肤黝黑的沸羊羊还能获得额外的分数奖励。

现在有 喜洋洋、美羊羊、沸羊羊、懒羊羊、慢羊羊五种羊。分别代表得分:5分、8分、10分、15分、20分。但是如果一支队伍抓到的羊的数目大于等于10,并且有抓到沸羊羊,那么该只队伍得分增加50。

身为年轻英勇的维京勇士小嗝嗝的你,虽然你没有参加这场比赛,但你能帮助你的Girl Friend阿丝翠德数一数她们队一共得了几分吗?

Input:

有多组数据测试,直到EOF。

第一行输入n ,代表接下来有n行输入,分表代表抓到的n只羊的名字。为了方便, 取“Pleasant goat”代表喜洋洋,取“Pretty goat”代表美羊羊,取“Athletic goat”代表沸羊  羊,取“Lazy goat”代表懒羊羊,取“Slow goat”代表慢羊羊。1 < n <= 10 ^ 4。

Output:

对于每组测试,输出“Case #k: ”,首先,k从1开始标号。

输出阿丝翠德她们队伍每次的总得分。

Sample Input:

5
Pleasant goat
Pretty goat
Athletic goat
Lazy goat
Slow goat
10
Pleasant goat
Pretty goat
Pleasant goat
Pretty goat
Pleasant goat
Pretty goat
Pleasant goat
Pretty goat
Athletic goat
Lazy goat

Sample Output:

Case #1: 58
Case #2: 127

Hint:

请不要使用 gets( ) 函数,可能会导致Wrong Answer (答案错误)

初始代码

我到现在都不知道为啥wrong answer,自己测试了很多案例都没问题,初步估计是C++的getline可能与C中的gets有关。
请添加图片描述

acceptd

#include <cstring>
#include "iostream"
#include "string"

using namespace std;

int main() {
    int t;
    int count = 0;

    while (cin >> t) {
        int score = 0;
        int flag = 0;

        for (int i = 0; i < t; i++) {

            char str[30];
            scanf("%s goat",&str);

            if (strcmp(str,"Pleasant") == 0) {
                score += 5;
            } else if (strcmp(str,"Pretty") == 0) {
                score += 8;
            } else if (strcmp(str,"Athletic") == 0) {
                score += 10;
                flag = 1;
            } else if (strcmp(str,"Lazy") == 0) {
                score += 15;
            } else if (strcmp(str,"Slow") == 0) {
                score += 20;
            }
        }
        count++;

        if (t >= 10 && flag == 1) {
            score += 50;
        }

        cout << "Case #" << count << ": " << score << endl;

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值