北理面试-重载运算符

两盒软妹~` 提交于 2019-12-31 02:21:25

题目描述
建立一个角类,在这个类中重载减号运算符(角度相减),并实现求出角度的正弦值的函数。
输入描述:

输入第一行为样例数m,接下来有m行每行两个整数表示角度。

输出描述:

输出m行,表示两角相减的正弦值,保留小数点后两位。

示例1
输入

1
60 30

输出

0.50

其实也就是重载运算符的问题。c++重载运算符有关知识
sin函数没搞清楚…貌似是math函数里要用弧度制
以下为代码:

#include<iostream>
#include<cmath>
using namespace std;
class angle{
	public:
		double data;
		angle operator-(const angle &b){
			angle an;
			an.data=this->data-b.data;
			return an;
		}
		double sinn(double data){
			return sin(data/180*3.1415926);
		}
};
int main(){
	int angle1,angle2,m;
	angle no2,no1,no;
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>angle1>>angle2;
		no1.data=angle1;
		no2.data=angle2;
		no=no1-no2;
		printf("%.2lf\n",no.sinn(no.data));
	}

	return 0;
} 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!