gpt4 book ai didi

c++ - 如何用语法表示动力学方程

转载 作者:行者123 更新时间:2023-11-28 00:10:45 24 4
gpt4 key购买 nike

所以我想写出公式

KE = 1 / 2mv^2

在 C++ 中,创建一个使用动能方程计算值的函数。但我并不完全确定如何去显示 1/2。难道我不必将它设为 double,因为如果我将 1/2 表示为整数,它只会显示 5 吗?编译器真正看到的是 0.5,其中的零被截断了?这是我目前用来计算这个等式的一段代码:double KE = 1/2*mvpow(KE,2);这是我的代码和我正在尝试做的事情。

当我使用 25 的测试值时,它给了我 0 而不是 25

//my protyped function kineticEnergy
double kineticEnergy(int m, int v);

int main(){
int m; // needed to pass a value into kineticEnergy function
int v; // needed to pass a value into kineticEnergy function

cout << "Enter the mass " << endl;
cin >> m;
cout << "Enter the velocity" << endl;
cin >> v;
int results = kineticEnergy(m,v);

cout << "The total kinetic energy of the object is " << results << endl;

return 0;
} // end of main

// ##########################################################
//
// Function name: kineticEnergy
//
// Description:This will grab input from a program and calculate
// kinetic energy within the function
// ##########################################################

double kineticEnergy(int m, int v){
double KE = 1/2*m*v*pow(KE,2); // equation for calculating kinetic energy

return KE;
} // end of kinetic energy

最佳答案

使用 std::array<double,3>对于速度 vector :

double kinetic_energy(double mass, std::array<double,3> const&velocity)
{
return 0.5 * mass * (velocity[0]*velocity[0]+
velocity[1]*velocity[1]+
velocity[2]*velocity[2]);
}

注意 1) 速度是一个 vector (其大小是速度)和 2) 使用 std::pow()不推荐用于计算平方:它比单个乘法(使用 C++11)的计算成本高得多。你可能想使用辅助

inline double square(double x)
{ return x*x; }

然后

double kinetic_energy(double mass, std::array<double,3> const&velocity)
{
return 0.5 * mass * (square(velocity[0])+square(velocity[1])+square(velocity[2]));
}

关于c++ - 如何用语法表示动力学方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33269183/

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