第2关:任务07-01-02 三角函数

咋写啊!
任务要求
评论
任务描述
编程输入若干个角度的值,输出它们的正弦值和余弦值(函数的参数是弧度,弧度=度×π/180,π可用3.1415926)。

输入格式:
若干角度值,以空格分隔。

输出格式:
对于每个角度,在一行中输出它的正弦值和余弦值,以一个空格分隔。

输入样例:
10 20
30
60 45
输出样例:
0.173648 0.984808
0.342020 0.939693
0.500000 0.866025
0.866025 0.500000
0.707107 0.707107

img

供参考:

#include <stdio.h>
#include <math.h>
#define pi 3.1415926
int main()
{
    int    ret;
    double angle;
    while (ret = scanf("%lf", &angle), ret == 1) //ctrl+z 回车 结束输入
    {
        angle = angle * pi / 180;
        printf("%f %f\n", sin(angle), cos(angle));
    }
    return 0;
}

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/4645473
  • 以下回答由chatgpt基于相关博客总结生成:

    输入格式:

    依次输入若干个数值,每个数值为一个角度值,以空格分隔。

    输出格式:

    对于每个输入的角度值,输出一行,包含该角度值的正弦值和余弦值,以空格分隔。

    样例输入:

    30 45 60 90

    样例输出:

    0.5 0.866 0.707 0.707 0.866 0.5 1 0

    解决方案:

    1. 首先,需要把输入的角度转换成弧度,公式为:弧度 = 度 × π / 180。

    2. 计算出弧度值之后,可以通过cmath库中的sin和cos函数分别计算正弦和余弦值,并将这两个值输出即可。

    实现代码如下:

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main() {
        double degree;
        while (cin >> degree) {
            double radian = degree * M_PI / 180; // 将角度转换为弧度
            double sin_value = sin(radian);
            double cos_value = cos(radian);
            // 输出正弦和余弦值,保留3位小数
            printf("%.3lf %.3lf\n", sin_value, cos_value);
        }
        return 0;
    }
    

    注意事项:

    1. 弧度值需要使用double类型存储,否则在计算时会出现精度误差。

    2. 输出时,需要使用printf函数进行格式化输出,保留3位小数即可。

    3. 如果使用cout输出,应该设置输出精度为3,否则同样会出现精度误差。