L1-3 谁能进图书馆 (10 分)

L1-3 谁能进图书馆 (10 分)

为了保障安静的阅读环境,有些公共图书馆对儿童入馆做出了限制。例如“12 岁以下儿童禁止入馆,除非有 18 岁以上(包括 18 岁)的成人陪同”。现在有两位小/大朋友跑来问你,他们能不能进去?请你写个程序自动给他们一个回复。

输入格式:

输入在一行中给出 4 个整数:

禁入年龄线 陪同年龄线 询问者1的年龄 询问者2的年龄

这里的禁入年龄线是指严格小于该年龄的儿童禁止入馆;陪同年龄线是指大于等于该年龄的人士可以陪同儿童入馆。默认两个询问者的编号依次分别为 1 和 2;年龄和年龄线都是 [1, 200] 区间内的整数,并且保证 陪同年龄线 严格大于 禁入年龄线。

输出格式:

在一行中输出对两位询问者的回答,如果可以进就输出 年龄-Y,否则输出 年龄-N,中间空 1 格,行首尾不得有多余空格。

在第二行根据两个询问者的情况输出一句话:

    如果两个人必须一起进,则输出 qing X zhao gu hao Y,其中 X 是陪同人的编号, Y 是小孩子的编号; 如果两个人都可以进但不是必须一起的,则输出 huan ying ru guan; 如果两个人都进不去,则输出 zhang da zai lai ba; 如果一个人能进一个不能,则输出 X: huan ying ru guan,其中 X 是可以入馆的那个人的编号。

其实可以直接几个if判断,但为了避免逻辑混乱(砸门水平有所欠缺,万一有测试点没过错的地方不好找)

#include<iostream>
using namespace std;
int main()
{
    int allow,tone,one,two;
    cin >> allow >> tone >> one >> two;
    int flag1=0,flag2=0,flag3=0; //1.2判断前来人是否到可进入年龄,3判断是否是大人带小孩
    if(one >= allow) flag1 = 1;
    if(two >= allow) flag2 = 1;
    if(one >= tone&&two<allow) flag3 = 1;
    if(two >= tone&&one<allow) flag3 = 2;
    //
    if((flag1 && flag2) || flag3)   printf("%d-Y %d-Y
",one,two);
    else if(flag1)                  printf("%d-Y %d-N
",one,two);
    else if(flag2)                  printf("%d-N %d-Y
",one,two);
    else                            printf("%d-N %d-N
",one,two);
    //
    if(flag1 && flag2)          printf("huan ying ru guan");
    else if(flag3==1)           printf("qing 1 zhao gu hao 2");
    else if(flag3==2)           printf("qing 2 zhao gu hao 1");
    else if(flag1)              printf("1: huan ying ru guan");
    else if(flag2)              printf("2: huan ying ru guan");
    else                        printf("zhang da zai lai ba");
    
    return 0;
}

新手上路~

经验分享 程序员 微信小程序 职场和发展