参数'1'不能将'double'转换为'double *'为'void Swap(double *,double *)'

时间:2014-12-08 03:45:46

标签: c++

我正在尝试完成一个评论问题(对于即将到来的编程决赛),但是,我不能解决这个问题,因为我不断得到错误(标题)。我将按照预期发布问题和我尝试的解决方案。

问题:

您将获得以下函数定义: void swap(double * n1,double * n2) 用于交换两个数字的函数。实现这个交换功能和 从main调用函数,传入两个数字。打印两个值的值 主要用于验证您的功能是否正常工作的数字 数字被交换了。

我的回答:

void Swap(double *n1, double *n2)
{
    int temp;
    temp = *n1;
    cout<<temp<<endl;
    *n1 = *n2;
    *n2 = temp;
    cout<<temp<<endl;
}
int main()
{
    Swap(.99,2.1);
    return 0;
}

当然,我们获得了一个解决方案页面,然而,这是未给出解决方案的问题之一。我该怎么做/我该如何处理?请详细说明任何解决方案!谢谢!

1 个答案:

答案 0 :(得分:3)

函数参数double *n1表示必须为函数指定double的地址。但是你试图给它加倍。

要获取double的地址,您必须创建一个变量:

double d1 = .99;
double d2 = 2.1;
Swap( &d1, &d2 );