错误,void 值没有被忽略,因为它应该被忽略

error, void value not ignored as it ought to be

我不知道该怎么做每当我尝试编译它时都会出现错误"error: void value not ignored as it ought to be" 我已经包含库 conio、stdlib 和 stdio.h

void com(float n,float r)

{
    float n1=1 ,n2;
    float r1=1 , r2;
    float d1=1, d2;
    float d , a;

    for(n2=1;n2<=n;n2++)

        n1=n2*n1;

    for(r2=1;r2<=r;r2++)

        r1=r2*r1;

        d=n-r;

    for(d2=1;d2<=d;d++)

        d1=d2*d1;

    a=(n1/(r1*d1));

    printf("%f",a);    
}

int main()
{
    float b,c,e;

    printf("\t nCr finder\n");
    printf("enter n and r\n");

    scanf("%f\n",&b);
    scanf("%f\n",&c);
    e = com(b,c);

    printf("%f",e);

    getch();
    return 0;    
}
e=com(b,c);

但您将函数声明为:

void com(float n,float r)

作为你的函数returns什么都没有,你不能分配它的结果。

com() 声明为 return 无,“void”,您将其 return 值分配给一个变量,可能是你想从 com() return a 并将其声明为

float com(float n, float r);

像这样

float com(float n,float r)
{
    float n1 = 1,n2;
    float r1 = 1, r2;
    float d1 = 1, d2;
    float d, a;

    for (n2 = 1 ; n2 <= n ; n2++)
        n1 = n2 * n1;

    for (r2 = 1 ; r2 <= r ; r2++)
        r1 = r2 * r1;

    d = n - r;
    for (d2 = 1 ; d2 <= d ; d++)
        d1 = d2 * d1;
    a = (n1 / (r1 * d1));

    return a;
}

int main()
{
    float b, c, e;

    printf("\t nCr finder\n");
    printf("enter n and r\n");

    scanf("%f\n", &b);
    scanf("%f\n", &c);

    e = com(b,c);

    printf("%f", e);

    getch();
    return 0;    
}