简介
在本实验中,你将学习如何在 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() 函数来计算给定值的反余弦。



