我有一个编写一个小程序的任务,包括使用指针和函数来查找平方根。我收到一条错误,上面写着" 3个重载中没有一个可以转换所有参数类型" 感谢您的帮助
这是我到目前为止的代码。我知道这很乱,我希望你们能帮忙。
void SqrRt(unsigned long int *, unsigned long int *);
int main() {
unsigned long int number, root;
cout << "Type in any number greater than 0 to find it's square root: ";
cin >> number;
SqrRt(&number, &root);
return 0;
}
void SqrRt(unsigned long int *num, unsigned long int *rt){
if (num >= 0)
rt = sqrt(num);
else
cout << "Invalid input! Number should be greater than 0!";
}
答案 0 :(得分:2)
[/quote]
只能处理数字,不是指向它们的指针,因此您需要做的就是取消引用您传递给{{1 }}。
除此之外,sqrt
还会返回一个数字,因此您还应该取消引用您指定的指针。
答案 1 :(得分:0)
您需要将rt = sqrt(num)
重写为*rt = sqrt(*num)
。您的代码的问题在于您不是指底层对象,即指针指向的对象。我建议你,如果可能的话,使用引用,因为与指针相比,它更容易使用。