我在这段代码中遇到'+ ='的问题。我无法弄清楚为什么编译器会抱怨,返回错误“expected a';'”。我确信这是一个非常简单的解决办法,但如果有人能让我知道我哪里出错了,我真的很感激。
#define _USE_MATH_DEFINES
#include <iostream>;
#include <cmath>;
using namespace std;
double R = 15;
double Qr = 61.17;
double A = 2.47e08;
double Tp = 447;
double Q = 10000;
double t = 0;
double hb = 0;
double hbnew = 0;
int t1 = 300;
int t2 = 400;
double ph_tot = 0;
int main() {
for (t = 0; t < Tp; t++) {
double hb = (0.5*R + ((Qr / ((A*R) / Tp)*t)));
double angle = t / (2 * M_PI);
double hm = cos(angle);
if (t1 < t && t < t2) {
double hbnew = hb - (Q / ((A*R) / Tp)*t);
double ph2 = 9180 * (hbnew - hm)*Q;
double ph_tot += ph2;
cout << "Power generated" << ph2 << endl;
}
else {
double hbnew = hb;
}
}
system("pause");
return 0;
}
答案 0 :(得分:7)
错误是因为您在初始化中使用它,重新定义了一个与全局变量同名的局部变量:
double ph_tot += ph2;
对于初始化,您必须使用=
(否则您将添加一些未定义的值)。
但是如果你想在全局变量中添加一些内容,只需删除类型:
ph_tot += ph2;