gpt4 book ai didi

c++ - 三角形,C++ 构造,计算角度的问题

转载 作者:太空宇宙 更新时间:2023-11-04 15:30:54 25 4
gpt4 key购买 nike

我的作业有问题。

1) 我应该用输入 a、b 和 c 编写函数 SSS。我需要输出 alpha、beta 和 gamma。

2) 我应该用输入 a、b 和 gamma 编写函数 SWS。我需要输出 c、alpha 和 beta。

这是我的代码:

#include <iostream>
#include <cmath>
#include <math.h>
#include <cstdio>

using namespace std;

double SSS_alpha(double a, double b, double c){

int bot1 = -2*b*c;
if(bot1==0.0){
return 0.0;
}

double alpha = acos((a*a-b*b-c*c)/bot1);
const double rad = 0.5729577951308232088;
return alpha*rad;

}

double SSS_beta(double a, double b, double c){

double bot2 = -2*c*a;
if(bot2==0.0){
return 0.0;
}

double beta = acos((b*b-c*c-a*a)/bot2);
const double rad = 0.5729577951308232088;
return beta*rad;
}

double SSS_gamma(double a, double b, double c){

double bot3 = -2*b*a;
if(bot3==0.0){
return 0.0;
}

double gamma = acos((c*c-a*a-b*b)/bot3);
const double rad = 0.5729577951308232088;
return gamma*rad;
}


double WSW_seite_c(double a, double b, double gamma){
double c_1 = (a*a+b*b-2*a*b*cos(gamma));
double c = sqrt(c_1);
return c;

}



int main(){
cout << SSS_alpha(5.0, 7.0, 8.0)<<endl;
cout <<SSS_beta(5.0, 7.0, 8.0)<<endl;
cout <<SSS_gamma(5,7,8)<<endl;
cout <<"Seite c: "<<WSW_seite_c(5, 7, 0.81)<<endl;

}

我只能在一个函数中返回一个参数。我有很多用于任务 1 的函数:alpha、beta、gamma。而且我不知道如何将它写在一个函数中。我只写了一个函数来为任务 2 找到 c。

我是 C++ 新手。如果你能帮助我,我会很高兴。:)

最佳答案

按照建议返回结构或使用类 Triangle 是完美的解决方案,这也是我通常使用的。

但是,在一些简单的情况下,通过元组返回多个值会很方便。
我在下面展示了一个简单的“工作”示例。
请注意,对于超过 3 个返回对象,我通常会避免这种解决方案,以避免混淆。

#include    <iostream>
#include <tuple>
std::tuple<double, double, double> f(double x, double y){
double a = x;
double b = x+y;
double c = x-y;
return std::make_tuple(a, b, c);
}
int main() {
double a, b, c;
std::tie (a, b, c) = f (1.0, 2.0);
std::cout << "a = " << a << "\n";
std::cout << "b = " << b << "\n";
std::cout << "c = " << c << "\n";
return 0;
}

我希望代码是自解释的。
使用 C++17 可以简化语法。我没有使用这些简化,因为我当前的编译器不兼容!
这种方法可以与结构方法结合使用,因为可以通过元组返回多个结构。

编辑:我刚刚看到 NathanOliver 已经在评论中提到了元组的可能性......

关于c++ - 三角形,C++ 构造,计算角度的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53176398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com