我收到错误消息“没有可行的重载'='”。
这是我现在拥有的代码
#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;
}
谁能告诉我我错了吗?
最佳答案
根据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;
关于c++ - 没有可行的重载 '=' C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48792686/