C语言自学探究---已知三边求指定的一个角的cos/sin值

时间:2024-07-11 06:56:34

一.已知三边求指定的一个角的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函数来实现目的!