给定两个保留一位小数的浮点数 X,Y,用来表示一个点的横纵坐标。
请你判断该点在坐标系中的位置。
输入样例1:
4.5 -2.2
输出样例1:
Q4
输入样例2:
0.0 0.0
输出样例2:
Origem
这是一道很简单的语法小题,主要考察对if和级联if的使用。但是本题也有小技巧,可以让代码更简洁。
C++ 代码
//普通的if 和 else…if 连用
#include<iostream>
using namespace std;
int main()
{
double x,y;
cin >> x >> y;
if(x>0 && y>0) cout<<"Q1"<<endl;
else if(x<0 && y>0) cout<<"Q2"<<endl;
else if(x<0 && y<0) cout<<"Q3"<<endl;
else if(x>0 && y<0) cout<<"Q4"<<endl;
else if(x==0 && y!=0) cout<<"Eixo Y"<<endl;
else if(x!=0 && y==0) cout<<"Eixo X"<<endl;
else if(x==0 && y==0) cout<<"Origem"<<endl;
return 0;
}
//代码虽然逻辑清晰,但是过于冗长,且判断次数多,代码重复多
//巧妙使用条件表达式,可以精简语句,提高速度
#include <iostream>
using namespace std;
int main()
{
double x,y;
cin >> x >> y;
if(x==0 && y==0) cout<<"Origem"<<endl;
else if(x * y ==0) cout<< (x==0 ? "Eixo Y" : "Eixo X")<<endl;
else if(x > 0) cout<< (y > 0 ? "Q1" : "Q4")<<endl;
else cout<< (y > 0 ? "Q2" : "Q3")<<endl;
}
//条件表达式可以理解为如果…,且…,则…,否则…。同时做一个if…else的工作,减少代码中if else的使用