一.已知三边求指定的一个角的cos/sin值
上一次我探究了三角形勾股定理实例http://t.****img.cn/eY7zI
写完三角形勾股定理代码后,我自然而然想到了解三角形中:
已知三边求指定的一个角的cos/sin值
于是我开始自己思考如何实现这一功能
part1:思考过程
首先我们需要输入三个边的值
double a, b, c;
cout << "请输入第一条边a: \n";
cin >> a;
cout << "请输入第二条边b: \n";
cin >> b;
cout << "请输入第二条边c: \n";
cin >> c;
这里使用了cout与cin输入与输出关键字
接着我们需要输入一个指定的角
由于输入的角是字符所以我们使用char来定义
char angle;
cout << "请输入要求的角(A/B/C):";
cin >> angle;
然后我们需要使用选择性语句实现对指定角的输出
这里我选择了对我而言最简单的if..else if...else 语句来判断输入的angle是什么,在根据输入的字符经行输出
if (angle == 'C')
{
}
else if (angle == 'B')
{
}
else if (angle == 'A')
{
}
else
{
printf("请认真阅读说明");
}
最后在前面定义一下cos,再在if...else语句中加入计算公式与输出代码
char cos
if (angle == 'A')
{
cos = ((b * b + c * c - a * a) / (2 * b * c));
cout << "角" << angle << "的cosA值为:" << cos << endl;;
}
else if (angle == 'C')
{
cos = ((a * a + b * b - c * c)/( 2 * a * b));
cout << "角" << angle << "的cosC值为:" << cos << endl;;
}
else if (angle == 'B')
{
cos =((a * a + c * c - b * b) /( 2 * a * c));
cout << "角" << angle << "的cosB值为:" << cos << endl;;
}
else if (angle == 'C')
{
cos = ((a * a + b * b - c * c) / (2 * a * b));
cout << "角" << angle << "的cosC值为:" << cos << endl;;
}
else
{
printf("请认真阅读说明");
}
最后的最后将所有代码整合一下
int main()
{
double a, b, c;
char angle;
double cos=0;
cout << "请输入第一条边a: \n";
cin >> a;
cout << "请输入第二条边b: \n";
cin >> b;
cout << "请输入第二条边c: \n";
cin >> c;
cout << "请输入要求的角(A/B/C):";
cin >> angle;
if (angle == 'A')
{
cos = ((b * b + c * c - a * a) / (2 * b * c));
cout << "角" << angle << "的cosA值为:" << cos << endl;;
}
else if (angle == 'C')
{
cos = ((a * a + b * b - c * c)/( 2 * a * b));
cout << "角" << angle << "的cosC值为:" << cos << endl;;
}
else if (angle == 'B')
{
cos =((a * a + c * c - b * b) /( 2 * a * c));
cout << "角" << angle << "的cosB值为:" << cos << endl;;
}
else if (angle == 'C')
{
cos = ((a * a + b * b - c * c) / (2 * a * b));
cout << "角" << angle << "的cosC值为:" << cos << endl;;
}
else
{
printf("请认真阅读说明");
}
return 0;
}
大功告成!
part2---定义函数来实现
这个参考了网上的一些现成案例,直接上代码!
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cmath>
#include <stdio.h>
double calculateCos(double side_a, double side_b, double side_c, char angle)
{
double cos_value;
if (angle == 'A') { // 计算角A的cos值
cos_value = (side_b * side_b + side_c * side_c - side_a * side_a) / (2 * side_b * side_c);
}
else if (angle == 'B') { // 计算角B的cos值
cos_value = (side_a * side_a + side_c * side_c - side_b * side_b) / (2 * side_a * side_c);
}
else if (angle == 'C') { // 计算角C的cos值
cos_value = (side_a * side_a + side_b * side_b - side_c * side_c) / (2 * side_a * side_b);
}
else {
std::cout << "输入的角度无效!" << std::endl;
return 0;
}
return cos_value;
}
int main() {
double side_a, side_b, side_c;
char angle;
std::cout << "请输入三角形的边a的长度:";
std::cin >> side_a;
std::cout << "请输入三角形的边b的长度:";
std::cin >> side_b;
std::cout << "请输入三角形的边c的长度:";
std::cin >> side_c;
std::cout << "请输入要求的角(A/B/C):";
std::cin >> angle;
double cos_value = calculateCos(side_a, side_b, side_c, angle);
std::cout << "角" << angle << "的cos值为:" << cos_value << std::endl;
return 0;
}
通过定义一个calculateCos函数来实现目的!