日常记录:天梯赛练习集L1-035 情人节

题目:

 

 

以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋。

输入格式:

输入按照点赞的先后顺序给出不知道多少个点赞的人名,每个人名占一行,为不超过10个英文字母的非空单词,以回车结束。一个英文句点.标志输入的结束,这个符号不算在点赞名单里。

输出格式:

根据点赞情况在一行中输出结论:若存在第2个人A和第14个人B,则输出“A and B are inviting you to dinner...”;若只有A没有B,则输出“A is the only one for you...”;若连A都没有,则输出“Momo... No one is for you ...”。

输入样例1:

GaoXZh
Magi
Einst
Quark
LaoLao
FatMouse
ZhaShen
fantacy
latesum
SenSen
QuanQuan
whatever
whenever
Potaty
hahaha
.

输出样例1:

Magi and Potaty are inviting you to dinner...

输入样例2:

LaoLao
FatMouse
whoever
.

输出样例2:

FatMouse is the only one for you...

输入样例3:

LaoLao
.

输出样例3:

Momo... No one is for you ...

 解答:

题目分析:

  • 按照点赞的先后顺序给出不知道多少个点赞的人名,每个人名占一行
  • 一个英文句点.标志输入的结束,这个符号不算在点赞名单里
  • 输出有三种情况:没有第二个点赞的人名,有第二个没有第十四个,有第二个和第十四个,三种情况对应三种不同的输出
  • 潜台词,如果有第十四个人名则必有第二个人名

操作实现:

  1. 定义bool型变量flag2和flag14 ,用来标记是否有第二个人名和第十四个人名

  2. 定义string型变量s2和s14,用来存储第二个人名和第十四个人名

  3. 定义int型变量index,用来表示当前是第index次输入

  4. 定义string型变量s,用来输入第index次的人名

  5. 因为给出的人名数量未知,所以使用while循环,当s="."表示输入结束,退出循环

  6. 如果index=2,则说明输入了第二个人名,需将flag2改为true,将s存入s2,index=14时同理

  7. 按要求输出

代码实现:

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

int main()
{
    bool flag2 = false, flag14 = false;
    
    string s2 = "", s14 = "";
    
    int index = 1;
    
    string s; cin >> s;
    
    while(s != ".")
    {
        if(index == 2) {s2 = s; flag2 = true;}
        if(index == 14) {s14 = s; flag14 = true;}
        index++;
        cin >> s;
    }
    
    if(!flag2) cout << "Momo... No one is for you ..." << endl;
    else if(!flag14) cout << s2 << " is the only one for you..." << endl;
    else cout << s2 << " and " << s14 << " are inviting you to dinner..." << endl;
    return 0;
}

PTA题目地址

欢迎大家探讨

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值