有一个我正在构建的程序,我需要计算扭矩和直径。我在语法上有两个方程,但我的输出保持为零。我错过了什么/做错了什么? (免责声明:我对此非常陌生,所以请,我欢迎建设性的批评!有什么可以帮助我变得更好。谢谢)。
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double p, n, s, t, d;
int main()
{
cout << "Enter values for horsepower (p), rpm (n) and shear strength(s): ";
cin >> p, n, s;
t = 6300 * p / n;
d = pow((16 * t) / s, 0.333);
cout << setw(10) << "HP " << p << endl;
cout << setw(10) << "rpm " << n << endl;
cout << setw(10) << "psi " << s << endl;
cout << setw(10) << "torque " << t << endl;
cout << setw(10) << "diameter " << d << endl;
return 0;
}
//Output:
/*Enter values for horsepower (p), rpm (n) and shear strength (s): 20 1500 5000
HP 20
rpm 0
psi 0
torque inf
diameter inf */
答案 0 :(得分:1)
行的意图
cout << "Enter values for horsepower (p), rpm (n) and shear strength(s): ";
cin >> p, n, s;
未在代码中正确表示。
第二行不会将任何内容读入n
或s
。它是一个使用comma operator的表达式。在这种特殊情况下,它会评估n
和s
并丢弃这些值。
好像你有:
cin >> p;
n;
s;
将该行更改为:
cin >> p >> n >> s;
您也可以使用详细信息:
cin >> p;
cin >> n;
cin >> s;
答案 1 :(得分:0)
以这样的方式输入您的输入(cin&gt;&gt;&gt;&gt;&n;&gt;&gt;&s;)并在您之前打印的结果计算后打印结果。
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double p, n, s, t, d;
int main()
{
cout << "Enter values for horsepower (p), rpm (n) and shear strength(s): ";
// cin >> p, n, s;
cin >> p >> n >> s;
cout << setw(10) << "HP " << p << endl;
cout << setw(10) << "rpm " << n << endl;
cout << setw(10) << "psi " << s << endl;
t = 6300 * p / n;
d = pow((16 * t) / s, 0.333);
cout << setw(10) << "torque " << t << endl;
cout << setw(10) << "diameter " << d << endl;
return 0;
}