【发布时间】:2021-10-13 00:43:00
【问题描述】:
我知道以前有人问过这个问题,但那里的答案似乎与我遇到的问题无关。
这是我的代码
#include <iostream>
int main()
{
double E;
double R;
double t;
double C;
std::cout << "This program will calculate the current flowing through an RC curcuit!\n\n";
std::cout << "Please enter the power source voltage value in Volts: ";
std::cin >> E;
std::cout << "\n\n";
std::cout << "Please enter the total resistance value in Ohms: ";
std::cin >> R;
std::cout << "\n\n";
std::cout << "Please enter the time elapsed after the switch closed Seconds: ";
std::cin >> t;
std::cout << "\n\n";
std::cout << "Please enter the total capacitance value in Farads: ";
std::cin >> C;
std::cout << "\n\n";
double RC = R * C;
double ER = E / R;
double pow = -t / RC;
double expo = 2.71828 ** pow; //this line is the problem...
double I = ER * expo;
std::cout << "The current flowing through this circuit is: " << I;
return 0;
}
我真的不知道这意味着什么,尽管在 Google 上查找了它...有人可以解释一下,一般来说,如何避免这种类型的错误,而不仅仅是解决这个特定的实例吗?
【问题讨论】:
-
C++ 没有
**运算符。您需要std::pow函数来进行浮点取幂。请注意,这意味着pow不是您的变量名的好选择。 -
错误的原因是因为没有
**操作符,它被解析为2.71828 * *pow,其中*pow似乎试图应用一元*指针解引用操作符到pow。然后这会出错,因为pow不是指针。 -
实际上,如果您想将
e提升为幂,请改用[std::exp(p)](https://en.cppreference.com/w/cpp/numeric/math/exp);比std::pow(2.71828, p)更准确。 -
避免
using namespace std;的好人。这使得在具有名为pow的变量的函数中使用std::pow函数变得不那么麻烦。 -
@user4581301 没有
namespace std,也没有bits/stdc++.h。 OP 已经超过了许多 C++ 程序员。
标签: c++