题目描述
建立一个角类,在这个类中重载减号运算符(角度相减),并实现求出角度的正弦值的函数。
输入描述:
输入第一行为样例数m,接下来有m行每行两个整数表示角度。
输出描述:
输出m行,表示两角相减的正弦值,保留小数点后两位。
示例1
输入
复制
1 60 30
输出
复制
0.50
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
class Angle{
private:
int jiaodu;
double sin;
public:
Angle();
Angle(int j , double s);
Angle(int j);
void show();
friend Angle operator-(Angle &a1, Angle &a2);
};
Angle::Angle(){
jiaodu = sin = 0;
}
Angle::Angle(int j){
jiaodu = j;
sin = 0;
}
Angle::Angle(int j, double s){
jiaodu = j;
sin = s;
}
void Angle::show(){
printf("%.2lf\n",sin);
}
Angle operator-(Angle &a1,Angle &a2){
Angle a;
a.jiaodu = a1.jiaodu - a2.jiaodu;
a.sin = sin((a.jiaodu*3.14152678)/180);
return a;
}
int main(){
int n;
cin >> n;
while(n--){
int r1, r2;
cin >> r1 >> r2;
Angle a(r1) , b(r2) , r;
r = a-b;
r.show();
}
return 0;
}