没有匹配'pow'功能

No matching function for 'pow'

本文关键字:pow 功能      更新时间:2023-10-16
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a;
double b;
double ans;
cout << endl << "Enter a";
cin >> a;
cout << endl << "Enter b:";
cin >> b;
ans = pow(pow(a, 2) + pow(b, 2)), 0.5)
cout << ans << endl;

在我分配ans的行中,它说"没有'pow'的匹配函数。

有问题的语句格式不正确。

您的左括号和右括号不平衡。 对pow()的外部调用尝试仅使用 1 个输入参数调用它,因此编译器错误,因为pow()需要 2 个参数。

但是,即使它确实发生了编译(例如,在某个地方的作用域中存在 1-param 重载(,那么该外部pow()的结果将被忽略,逗号运算符的结果将被分配给ans- 如果它甚至编译了,它不会,因为你会在0.5后有一个错误的右括号, 以及语句末尾缺少的分号。

您需要将该行更改为以下内容:

ans = pow(pow(a, 2) + pow(b, 2), 0.5);

试试这个:

ans = pow(pow(a, 2( + pow(b, 2(, 0.5(;

您在 2 之后有一个额外的"(",并且您的行缺少分号。