我收到错误消息“没有可行的重载'='”。
这是我现在拥有的代码

#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/

10-13 08:21