题目
为了保障安静的阅读环境,有些公共图书馆对儿童入馆做出了限制。例如“12 岁以下儿童禁止入馆,除非有 18 岁以上(包括 18 岁)的成人陪同”。现在有两位小/大朋友跑来问你,他们能不能进去?请你写个程序自动给他们一个回复。
输入格式
输入在一行给出四个数字
禁入年龄线 陪同年龄线 询问者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 是可以入馆的那个人的编号。
代码
代码如下:
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int a, b, x1, x2; //禁入年龄线a 陪同年龄线b 询问者1的年龄x1 询问者2的年龄x2
char Y, N;
cin >> a >> b >> x1 >> x2;
if (x1 >= a)
{
if (x2 >= a)//1,2都能进
{
cout << x1 << "-Y" << " " << x2 << "-Y" << endl;
cout << "huan ying ru guan" << endl;
}
else//1能进,2不能单独进入,需要陪同
{
//cout << x1 << "-Y" << " " << x2 << "-N" << endl;
//cout << "1: huan ying ru guan" << endl;
if (x1 >= b)//1可以带小孩
{
cout << x1 << "-Y" << " " << x2 << "-Y" << endl;
cout << "qing 1 zhao gu hao 2" << endl;
}
else //1不能带小孩,只能1一个人进
{
cout << x1 << "-Y" << " " << x2 << "-N" << endl;
cout << "1: huan ying ru guan" << endl;
}
}
}
else//x1<a
{
if (x2 >= a)//1不能单独进入,需要陪同,2可以单独进入
{
//cout << x1 << "-N" << " " << x2 << "-Y" << endl;
//cout << "2: huan ying ru guan" << endl;
if (x2 >= b)//2可以带小孩1
{
cout << x1 << "-Y" << " " << x2 << "-Y" << endl;
cout << "qing 2 zhao gu hao 1" << endl;
}
else//2带不了小孩,只能一个人进去
{
cout << x1 << "-N" << " " << x2 << "-Y" << endl;
cout << "2: huan ying ru guan" << endl;
}
}
else//1,2都不能进入
{
cout << x1 << "-N" << " " << x2 << "-N" << endl;
cout << "zhang da zai lai ba" << endl;
}
}
return 0;
}
总结
逻辑问题,要分好类别,理清思路,很容易忽略一种情形,所以要列一下自己开始的思路是怎样的,理清以后代码就好写了。