C语言一道简单题目

这是我的代码,不知道哪里出错了,可以运行,但运行结果不对
#include "stdio.h"
#include"math.h"
void main()
{
double x,y,w;
printf("enter x,y");
scanf("%lf%lf",&x,&y);
w=sin(fabs(x)+fabs(y))/sqrt(cos(fabs(x+y)));
printf("w=%f",w);

}
原题:输入两个角度值分别赋给变量x,y,计算下面算是结果
sin(|x|+|y|)/根号(cos(|x+y|)).
我输入30 30的时候,结果为-1
谢谢了

在C语言编程中,sin()和cos()还有其他三角函数中要输入弧度,不能直接输入角度,你把输入的值改成3.14/6就可以啦。
如果你一定要输入角度的话,在后面加上*3.14/180,比如你的程序可改成w=sin(fabs(x)+fabs(y))/(sqrt(cos(fabs(x+y)*3.14/180))*3.14/180);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-11
程序没有错吧,30不是指的弧度制的30°啊,程序没有错,经验证。
第2个回答  2010-04-11
计算机编程中的数学库一般是以弧度为单位的,不是度
当使用时要注意单位换算 x度 = (x/180.0)*PI弧度
PI = 3.141592653...
不知是不是这个问题,你试试吧
第3个回答  2010-04-11
我这里没有工具,你吧printf里面的%f该为%lf看一下。
第4个回答  2010-04-11
scanf("%lf%lf",&x,&y);
scanf("%lf %lf",&x,&y);
中间要加空格