错误,空值不应该被忽略,因为它应该是

时间:2015-01-25 13:08:27

标签: c gcc

我不知道该怎么做当我尝试编译它时会出现错误"错误:无法忽略void值,因为它应该是"我已经包括库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;    
}

2 个答案:

答案 0 :(得分:2)

e=com(b,c);

但你宣布你的职能为:

void com(float n,float r)

由于您的函数不返回任何内容,因此无法分配其结果。

答案 1 :(得分:1)

声明

com()不返回任何内容,&#34; 即。 void &#34;并且您将其返回值分配给变量,可能是您要从a返回com()并将其声明为

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;    
}
相关问题