注册 登录
编程论坛 C语言论坛

大家帮我修改一下这个程序

黑暗骑士5D 发布于 2019-11-12 20:05, 4408 次点击
求y=根号下(sin60度+1)*(sin30度+1)/cosx
输入格式:
输入角度x。变量数据类型为double。π为3.14159。

输出格式:
输出y的值,精确到小数点后2位。

输入样例:
12.3
输出样例:
1.69

int main()
{
    double x,y;
    scanf("%f",&x);
    y=pow(((3.14159/3.00+1)*(3.14159/6.00+1)/cos(x)),1/2);
    printf("%.2f",y);
    return 0;

}
6 回复
#2
ehszt2019-11-12 20:13
角度先转弧度,然后才能用三角函数
具体弧度=角度*PI/180。
#3
forever742019-11-12 21:13
第一,double对应%lf
第二,sin哪儿去了?开小差
第三,1/2的值是0啊
#4
forever742019-11-12 21:15
缺少头文件也是问题。
#5
黑暗骑士5D2019-11-12 22:49
回复 3楼 forever74
输入12.3我的答案是1.00不是1.69,到底咋改啊
#6
rjsp2019-11-13 08:39
以下是引用黑暗骑士5D在2019-11-12 22:49:22的发言:

到底咋改啊
到底咋改啊,别人都一一告诉你了呀。你把别人指出的错误都改掉就行了

程序代码:
#include <stdio.h>
#include <math.h>

int main( void )
{
    double x;
    scanf( "%lf", &x );

    const double pi = 3.14159;
    double y = sqrt( (sin(60.0/180*pi)+1) * (sin(30.0/180*pi)+1) / cos(x/180*pi) );
    printf( "%.2f\n", y );
}

#7
西语2020-04-08 08:34
#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main()
{
    double x,y;
    scanf("%lf",&x);
    y= sqrt((sin(60.0/180*PI)+1)*(sin(30.0/180*PI)+1)/cos(x/180*PI));
    printf("%.2f",y);
    return 0;
}

1