一.已知三边求指定的一个角的cos/sin值
上一次我探究了三角形勾股定理实例http://t.csdnimg.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函数来实现目的!