错误"期待')'之前'&'令牌"用指针调用函数时

时间:2018-05-05 04:08:12

标签: c

我在这一行收到错误expected ')' before '&' token&p1, &p2, &q1, &q2);,它是void calcula_pq (...)函数的一部分。

我无法弄清楚如何修复它。请帮我。

这是我的代码

#include <stdio.h>
void calcula_pq ( double xi, double yi, double div, double xk, double yk, 
double dkv, double x2, double y2, double d2v, double x3, double y3, 
double d3v, double *p1, double *p2, double *q1, double *q2);


int main ()
{
    double p1, p2, q1, q2, xi, yi, div, xj, yj, djv, xk, yk, dkv;
    scanf ("%lf%lf%lf%lf%lf%lf%lf%lf%lf", &xi, &yi, &div, &xj, &yj, &djv, 
    &xk, &yk, &dkv);
    void calcula_pq ( xi, yi, div, xk, yk, dkv, xk, yk, dkv, xj, yj, djv, 
                      &p1, &p2, &q1, &q2);
    printf ("%.10f   %.10f    %.10f   %.10f", p1, p2, q1, q2);
    return 0;
}



void calcula_pq ( double xi, double yi, double div, double xk, double yk, 
double dkv, double x2, double y2, double d2v, double x3, double y3, 
double d3v, double *p1, double *p2, double *q1, double *q2){

    double pa, pb, qa, qb;

    pa = ( ( (xi*xi) - (x2*x2) + (yi*yi) - (y2*y2) - (div*div) + (d2v*d2v) / 
         (2 * (xi - x2) ) );
    pb = ( ( (x3*x3) - (xk*xk) + (y3*y3) - (yk*yk) - (d3v*d3v) + (dkv*dkv) / 
         (2 * (x3 - xk) ) );
    qa = ( (y2 - yi) / (xi - x2));
    qb = ( (yk - y3) / (x3 - xk));
    *p1 = pa;
    *p2 = pb;
    *q1 = qa;
    *q2 = qb;
}

2 个答案:

答案 0 :(得分:1)

在main中的方法调用具有void ..删除并尝试

改变
void calcula_pq ( xi, yi, div, xk, yk, dkv, xk, yk, dkv, xj, yj, djv, 
                      &p1, &p2, &q1, &q2);

calcula_pq ( xi, yi, div, xk, yk, dkv, xk, yk, dkv, xj, yj, djv, 
                          &p1, &p2, &q1, &q2);

答案 1 :(得分:0)

删除void之前的calcula_pq (...或将其括在括号中(如果您打算在那里投射)。但我认为你复制并粘贴了签名并错过了。

还缺少两个右括号(calcula_pq (2 * (xi - x2) ) ); (2 * (x3 - xk) ) );#include <stdio.h> void calcula_pq ( double xi, double yi, double div, double xk, double yk, double dkv, double x2, double y2, double d2v, double x3, double y3, double d3v, double *p1, double *p2, double *q1, double *q2); int main () { double p1, p2, q1, q2, xi, yi, div, xj, yj, djv, xk, yk, dkv; scanf ("%lf%lf%lf%lf%lf%lf%lf%lf%lf", &xi, &yi, &div, &xj, &yj, &djv, &xk, &yk, &dkv); calcula_pq ( xi, yi, div, xk, yk, dkv, xk, yk, dkv, xj, yj, djv, // remove void &p1, &p2, &q1, &q2); printf ("%.10f %.10f %.10f %.10f", p1, p2, q1, q2); return 0; } void calcula_pq ( double xi, double yi, double div, double xk, double yk, double dkv, double x2, double y2, double d2v, double x3, double y3, double d3v, double *p1, double *p2, double *q1, double *q2){ double pa, pb, qa, qb; pa = ( ( (xi*xi) - (x2*x2) + (yi*yi) - (y2*y2) - (div*div) + (d2v*d2v) / (2 * (xi - x2) ) ) ); // add ) pb = ( ( (x3*x3) - (xk*xk) + (y3*y3) - (yk*yk) - (d3v*d3v) + (dkv*dkv) / (2 * (x3 - xk) ) ) ); // add ) qa = ( (y2 - yi) / (xi - x2)); qb = ( (yk - y3) / (x3 - xk)); *p1 = pa; *p2 = pb; *q1 = qa; *q2 = qb; } }。

{{1}}