在 C 语言中计算反余弦(arccos)

CBeginner
立即练习

简介

在本实验中,你将学习如何在 C 语言中计算反余弦(arccos)函数。本实验涵盖两个主要步骤:读取 -1 到 1 之间的有效输入值,然后使用 C 数学库中的 acos() 函数计算输入值的反余弦。分步说明为输入验证和执行反余弦计算提供了全面的指南,确保你对 C 编程中的这种三角运算有扎实的理解。

读取 -1 到 1 之间的值

在这一步中,你将学习如何读取用于在 C 语言中计算反余弦(arccos)函数的有效输入值。反余弦函数要求输入值在 -1 到 1 之间。

首先,创建一个新的 C 文件来演示输入验证:

cd ~/project
nano arccos_input.c

现在,将以下代码添加到该文件中:

#include <stdio.h>
#include <math.h>

int main() {
    double input;

    printf("Enter a value between -1 and 1 for arccos calculation: ");
    scanf("%lf", &input);

    // 输入验证
    if (input < -1 || input > 1) {
        printf("Error: Input must be between -1 and 1\n");
        return 1;
    }

    printf("Valid input: %f\n", input);
    return 0;
}

编译并运行该程序:

gcc arccos_input.c -o arccos_input -lm

示例输出:

有效输入:

Enter a value between -1 and 1 for arccos calculation: 0.5
Valid input: 0.500000

无效输入:

Enter a value between -1 and 1 for arccos calculation: 2
Error: Input must be between -1 and 1

这段代码演示了:

  • 使用 scanf() 读取双精度浮点数
  • 验证输入以确保其在反余弦的有效范围内
  • 为无效输入提供用户友好的错误消息

使用 acos() 函数

在这一步中,你将学习如何使用 C 数学库中的 acos() 函数来计算给定输入值的反余弦(arccos)。

继续在同一个项目目录中工作,并修改之前的程序:

cd ~/project
nano arccos_calculation.c

添加以下代码以实现反余弦计算:

#include <stdio.h>
#include <math.h>

int main() {
    double input;

    printf("Enter a value between -1 and 1 for arccos calculation: ");
    scanf("%lf", &input);

    // 输入验证
    if (input < -1 || input > 1) {
        printf("Error: Input must be between -1 and 1\n");
        return 1;
    }

    // 计算反余弦
    double angle_radians = acos(input);

    printf("Input value: %f\n", input);
    printf("Arccos (in radians): %f\n", angle_radians);

    return 0;
}

编译该程序:

gcc arccos_calculation.c -o arccos_calculation -lm

示例输出:

Enter a value between -1 and 1 for arccos calculation: 0.5
Input value: 0.500000
Arccos (in radians): 1.047198
Enter a value between -1 and 1 for arccos calculation: -0.5
Input value: -0.500000
Arccos (in radians): 2.094395

关于 acos() 的要点:

  • <math.h> 库的一部分
  • 接受 -1 到 1 之间的值
  • 以弧度为单位返回角度
  • 编译时需要 -lm 标志来链接数学库

以弧度为单位打印角度

在这一步中,你将学习如何以不同格式转换并打印反余弦角度,包括弧度、度以及更易读的表示形式。

继续在同一个项目目录中操作:

cd ~/project
nano arccos_angle_print.c

添加以下代码以演示角度打印:

#include <stdio.h>
#include <math.h>

#define PI 3.14159265358979323846

int main() {
    double input;

    printf("Enter a value between -1 and 1 for arccos calculation: ");
    scanf("%lf", &input);

    // 输入验证
    if (input < -1 || input > 1) {
        printf("Error: Input must be between -1 and 1\n");
        return 1;
    }

    // 计算反余弦
    double angle_radians = acos(input);

    // 将弧度转换为度
    double angle_degrees = angle_radians * (180.0 / PI);

    // 以不同格式打印角度
    printf("Input value: %f\n", input);
    printf("Angle in Radians: %f\n", angle_radians);
    printf("Angle in Degrees: %f\n", angle_degrees);

    // 打印描述性表示
    printf("Angle Description: %.2f radians (%.2f degrees)\n",
           angle_radians, angle_degrees);

    return 0;
}

编译该程序:

gcc arccos_angle_print.c -o arccos_angle_print -lm

示例输出:

Enter a value between -1 and 1 for arccos calculation: 0.5
Input value: 0.500000
Angle in Radians: 1.047198
Angle in Degrees: 60.000000
Angle Description: 1.05 radians (60.00 degrees)
Enter a value between -1 and 1 for arccos calculation: -0.5
Input value: -0.500000
Angle in Radians: 2.094395
Angle in Degrees: 120.000000
Angle Description: 2.09 radians (120.00 degrees)

要点:

  • 使用 PI 常量进行度的转换
  • 使用 angle_radians * (180.0 / PI) 将弧度转换为度
  • 演示了角度表示的不同格式化选项
  • 使用 %.2f 保留两位小数精度

总结

在本实验中,你学习了如何读取 -1 到 1 之间的有效输入值,用于在 C 语言中计算反余弦(arccos)函数。你还学习了如何使用 C 数学库中的 acos() 函数来执行反余弦计算,并以弧度为单位打印角度。

本实验的关键要点是进行输入验证,以确保输入在有效范围内,以及使用 acos() 函数来计算给定值的反余弦。