牛客网刷题 | BC67 牛牛的金币

目前主要分为三个专栏,后续还会添加:

        专栏如下:                 C语言刷题解析       C语言系列文章       我的成长经历

感谢阅读!

初来乍到,如有错误请指出,感谢!


描述

牛牛尝试在蒙住眼睛的情况下拿到旁边的金币,假设的坐标是 (x,y) ,金币的坐标是 (x1,y1) ,金币一定在牛牛在周围,即 ∣𝑥1−𝑥∣+∣𝑦1−𝑦∣=1 ∣x1​−x∣+∣y1​−y∣=1  请你判断牛牛应该往哪个方向伸手。

输入描述:

第一行输入 x ,y 表示牛牛的坐标。

第二行输入 x1,y1 表示金币的坐标。保证 ∣𝑥1−𝑥∣+∣𝑦1−𝑦∣=1 ∣x1​−x∣+∣y1​−y∣=1 

坐标是整数。

输出描述:

输出牛牛应该往哪个方向伸手。

例: 

(x,y)=(0,0) (x1,y1)=(0,1) ,则牛牛向上伸手,输出 'u' 。

(x,y) =(0,0) (x1,y1) = (0,-1) ,则牛牛向下伸手,输出 'd'。

(x,y) =(0,0) (x1,y1) = (1,0) ,则牛牛向右伸手,输出 'r'。

(x,y) =(0,0) (x1,y1) = (-1,0) ,则牛牛向左伸手,输出 'l'。


 思路 :

一开始我想的很多

数组啦、二维数组啦、坐标加减坐标啦

结果发现想复杂了

不需要那么多的步骤

题目没有理解全

......

唉,苦恼

还是看了别人的代码

突然豁然开朗。。。

如果 𝑥1>𝑥 x1​>x 并且 𝑦1=𝑦y1​=y,牛牛应该向右伸手,输出 'r'。

如果 𝑥1<𝑥 x1​<x 并且 𝑦1=𝑦y1​=y,牛牛应该向左伸手,输出 'l'。

如果 𝑥1=𝑥 x1​=x 并且 𝑦1>𝑦y1​>y,牛牛应该向上伸手,输出 'u'。

如果 𝑥1=𝑥 x1​=x 并且 𝑦1<𝑦y1​<y,牛牛应该向下伸手,输出 'd'。


代码1:

# include <stdio.h>
int main ()

{
    int x,y,x1,y1;
    scanf("%d %d",&x,&y);
    scanf("%d %d",&x1,&y1);

    if (x==x1) 
    {
        if (y1>y) 
        {
            printf("u");
        }
        else 
        {
            printf("d");
        }
    }
    if (y==y1) 
    {
        if (x1>x) 
        {
            printf("r");
        }
        else 
        {
        printf("l");
        }
    }

    return 0;
}

代码2: 

int main()
{
    int x,y,x1,y1;
    scanf("%d %d",&x,&y);
    scanf("%d %d",&x1,&y1);
    if (x1==x)
        y1>y?printf("u"):printf("d");
    else
        x1>x?printf("r"):printf("l");
    return 0;
}

代码3: 

这个是AI写出来的代码......

AI超越人,可能真的指日可待......

#include <stdio.h>  // 包含标准输入输出库

int main() 
    {
        int x, y, x1, y1;  // 定义四个整型变量,分别代表牛牛和金币的坐标
    
    // 读取牛牛的坐标
        scanf("%d %d", &x, &y);
    
    // 读取金币的坐标
        scanf("%d %d", &x1, &y1);

    // 判断牛牛应该往哪个方向伸手
        if (x1 > x && y1 == y) 
    {
        printf("r\n");  // 如果金币在牛牛的右边,则牛牛应该向右伸手
    } 
        else if (x1 < x && y1 == y) 
    {
        printf("l\n");  // 如果金币在牛牛的左边,则牛牛应该向左伸手
    } 
        else if (x1 == x && y1 > y) 
    {
        printf("u\n");  // 如果金币在牛牛的上方,则牛牛应该向上伸手
    } 
        else if (x1 == x && y1 < y) 
    {
        printf("d\n");  // 如果金币在牛牛的下方,则牛牛应该向下伸手
    }

    return 0;  // 程序正常结束
}

 

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值