问题描述
- 结果数据溢出的有关问题
-
#include<iostream> #include<cmath> using namespace std; void main() { double x,y,s1,s2; cout<<"请输入两个角度值:"; cin>>x>>y; s1=sin(fabs(x)+fabs(y)); s2=sqrt(cos(fabs(x+y))); cout<<s1<<endl<<s2<<endl; }
解决方案
#include
#include
using namespace std;
int main()
{
double x,y,s1,s2;
cout<<"请输入两个角度值:";
cin>>x>>y;
s1=sin(fabs(x)+fabs(y));
cout<<cos(fabs(x+y))<<endl;
s2=sqrt(cos(fabs(x+y)));
cout<<s1<<endl<<s2<<endl;
return 0;
}
把这个代码放进去测试得知,cos(fabs(x+y))求出的是一个负数,对负数开方自然就出错了。
解决方案二:
sqrt函数是不能对负数开方的。你cos(fabs(x+y))这个算出来是负数。如果能够帮助你的话,请采纳。
时间: 2024-10-28 17:52:04