张丽文 发表于 2014-3-2 20:48:47

error C2660: 'f2' : function does not take 1 parameters 执行 cl.exe 时出错.

#include<stdio.h>

int f1(int x)
{
    int m;
    if(x==0||x==1)
      m=1;
    else
      m=f1(x-1)*x;
    return m;
}


int f2(int x,int y)
{
    int p;
    if(x-y==0||x-y==1)
      p=1;
    else
      p=f2(x-y-1)*(x-y);
    return p;
}

void main()
{
    int c;
    int n,m;

    printf("请输入排列组合中的底数m=");
    scanf("%d\n",&m);
    printf("请输入排列组合中的情况n=");
    scanf("%d",&n);

    c=f1(m)/(f1(n)*f2(m,n));
    printf("排列组合的结果C=%d\n",c);
}

CL0419 发表于 2014-3-2 20:48:48

你f2有两个函数参数,但是你在p = f2(x-y-1) * (x-y)的时候错了,应该这么写: p = f2(x-y-1,x-y),这样就对了。

志鹏最帅 发表于 2014-3-2 22:07:21

你的f2函数形参有两个,你自身调用的时候只传给他一个参数而已

yuzhouliu2000 发表于 2014-3-3 08:43:00

帮顶一下,我也没使用

张丽文 发表于 2014-3-3 22:26:08

谢谢已经解决了 :lol:
页: [1]
查看完整版本: error C2660: 'f2' : function does not take 1 parameters 执行 cl.exe 时出错.