我收到错误消息“没有可行的重载'='”。 这是我现在拥有的代码
#include <iostream>
#include <cmath>
using namespace std;
int main() {
auto n=0;
int p=0;
cout << "enter number n:"<< endl;
cin >> n ;
cout << p=pow(2,n)*n! << endl; //this is where I get the error message
cout << "the product is:" << endl;
cout << p << endl;
return 0;
}
谁能告诉我我的错误?
答案 0 :(得分:8)
根据C++ Operator Precedence,运营商<<
优先于运营商=
。
这意味着
cout << p=pow(2,n)*n! << endl;
读作
(cout << p)=(pow(2,n)*n! << endl);
没有任何意义。使用括号保护您的作业:
cout << (p=pow(2,n)*n!) << endl;
或者更好的是,将它分成两个语句:
p=pow(2,n)*factorial(n); // n! does not exist in C++.
cout << p << endl;