2301_80447886 2024-01-24 16:52 采纳率: 33.3%
浏览 26

pta天梯L1-83谁能进图书馆

L1-083 谁能进图书馆
分数 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 是可以入馆的那个人的编号。
输入样例 1:
12 18 18 8
输出样例 1:
18-Y 8-Y
qing 1 zhao gu hao 2
输入样例 2:
12 18 10 15
输出样例 2:
10-N 15-Y
2: huan ying ru guan
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB


#include<stdio.h>
int main()
{
    int jz,pt,b1,b2,count=0;
    scanf("%d%d%d%d",&jz,&pt,&b1,&b2);
    if(b1>=jz)
    {
        printf("%d-Y ",b1);
        count++;
    }
    
    
    else
    printf("%d-N ",b1);
    if(b2>=jz)
    {
        printf("%d-Y\n",b2);
        count++;
    }
    
    else
    printf("%d-N\n",b2);
    if(count==2)
    {
        printf("huan ying ru guan");
    }
    else if(count==1)
    {
        if(b1<pt&&b2<pt)
        {
            if(b1>b2)
            printf("1: huan ying ru guan");
            else
            printf("2: huan ying ru guan");
        }
        else
        {
            if(b1>b2)
            printf("qing 1 zhao gu hao 2");
            else
            printf("qing 2 zhao gu hao 1");
        }
        
    }
    else
    {
        printf("zhang da zai lai ba");
    }
    
    
    return 0;
 } 
有两个测试点通过不了不知道为什么。

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-24 18:21
    关注

    【以下回答由 GPT 生成】

    问题所在:在代码中,如果只有一个人能进入图书馆的情况下,输出的格式不正确。

    解决方案:在输出时,对只有一个人能进入图书馆的情况进行修正。

    修正后的代码如下:

    #include<stdio.h>
    int main()
    {
        int jz,pt,b1,b2,count=0;
        scanf("%d%d%d%d",&jz,&pt,&b1,&b2);
        if(b1>=jz)
        {
            printf("%d-Y ",b1);
            count++;
        }
        else
        {
            printf("%d-N ",b1);
        }
    
        if(b2>=jz)
        {
            printf("%d-Y\n",b2);
            count++;
        }
        else
        {
            printf("%d-N\n",b2);
        }
    
        if(count==2)
        {
            printf("huan ying ru guan");
        }
        else if(count==1)
        {
            if(b1<pt&&b2<pt)
            {
                if(b1>b2)
                {
                    printf("2: huan ying ru guan");
                }
                else
                {
                    printf("1: huan ying ru guan");
                }
            }
            else
            {
                if(b1>b2)
                {
                    printf("qing 1 zhao gu hao 2");
                }
                else
                {
                    printf("qing 2 zhao gu hao 1");
                }
            }
        }
        else
        {
            printf("zhang da zai lai ba");
        }
        return 0;
    } 
    

    以上代码修正了输出格式错误的问题,重新编译运行后,应该能通过所有的测试点。



    【相关推荐】


    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7798335
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:问题:同一个进程中,先后对同一个文件描述符进行写入 / 读取 操作,读写指针的位置导致读取内容失败
    • 除此之外, 这篇博客: C语言实现八大排序算法详解及其性能之间的中的 我们老师给我们花了100个星星的重要,那就是非常重要,快速排序。名字就很嚣张。。。言归正传,快排采用了分治算法。把大问题,分解成小问题。首先我们先找一个基准值,基准值的寻找法,有很多,这里我先用一个取边上值得方法,找到基准值以后呢拿着这个基准值和所有数组比较,使这个数组中比基准值小的都放左边,比基准值大的都放到右边,然后就把原来数组分成三块,中间基准值,左边都是比它小的,右边都是比它大的。然后这两个数组,继续分,一直分。直到他的终止条件,也就是小数组有序了就停止,那么什么时候有序停止呢?小区间长度为1或者长度为0的时候,就是有序了。所有小数组都有序了,那么就是整个数组有序了。只是原理,那么问题,又来了,怎么放左放右呢?我目前会三种。 部分也许能够解决你的问题。

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 1月24日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀