AcWing 662:点的坐标 ← 结构体 or 三目运算符

【题目来源】
https://www.acwing.com/problem/content/664/

【题目描述】
给定两个保留一位小数的浮点数 X,Y,用来表示一个点的横纵坐标。
请你判断该点在坐标系中的位置。

【输入格式】
共一行,包含两个浮点数 X,Y,表示点的横纵坐标。

【输出格式】
如果点在第一象限,则输出 Q1,在第二象限,则输出 Q2,以此类推。
如果点在原点处,则输出 Origem。
否则,如果点在 x 坐标上,则输出 Eixo X,在 y 坐标上,则输出 Eixo Y。

【数据范围】
−10.0≤X,Y≤10.0

【输入样例1】
4.5 -2.2

【输出样例1】
Q4

【输入样例2】
0.0 0.0

【输出样例2】
Origem

【算法分析】
◆ 当点不是原点时,判断点在 X 轴的条件为 
p.y==0,判断点在 Y 轴的条件为 p.x==0

【算法代码一:结构体】

#include <bits/stdc++.h>
using namespace std;

struct Point{
    float x;
    float y;
}p;

int main() {
    cin>>p.x>>p.y;
    if(p.x==0 && p.y==0) cout<<"Origem"<<endl;
    else if(p.y==0) cout<<"Eixo X"<<endl;
    else if(p.x==0) cout<<"Eixo Y"<<endl;
    else if(p.x>0 && p.y>0) cout<<"Q1"<<endl;
    else if(p.x<0 && p.y>0) cout<<"Q2"<<endl;
    else if(p.x<0 && p.y<0) cout<<"Q3"<<endl;
    else if(p.x>0 && p.y<0) cout<<"Q4"<<endl;
        
    return 0;
}

/*
in:
0.0 -1.7

out:
Eixo Y
*/

【算法代码二:三目运算符】

#include <bits/stdc++.h>
using namespace std;

int main() {
    float x,y;
    cin>>x>>y;

    if(x==0 && y==0) cout<<"Origem";
    else if(x*y==0) cout<<(x==0?"Eixo Y":"Eixo X");
    else if(x>0) cout<<(y>0?"Q1":"Q4");
    else cout<<(y>0?"Q2":"Q3");
}

/*
in:
0.0 -1.7

out:
Eixo Y
*/




【参考文献】
https://www.acwing.com/solution/content/254897/
https://www.acwing.com/solution/content/12396/


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值