C语言 编制递归函数 计算阶乘m!/((m-n)!*n!)

img


程序有错误,可我找不到
求指正,求指正,求指正
有什么错误呢
真的找不到啊

把 printf 语句移到 if 的中括号里面

你这代码错误一大堆呀
1.print写到if外面去了,导致语法都是错误的,编译不了
2.s1,s2,s3都是int,除法也是整型除法,得数肯定是个错误的
3.int型最多计算13的阶乘,再大就溢出了

你的pg() 函数 ,参数定义错误,你应该传的是(int n)。 还有就是第四行 你又定义了 int n 这地方应该删掉。

#include <stdio.h>

int pq(int n)
{
  int s = 1;
  while (n >= 1)
  {
    s = s * n;
    n--;
  }
  return s;
}

int main()
{
  int m, n, s1, s2, s3;
  scanf("%d %d", &m, &n);
  if (n > 0 && n < m)
  {
    s1 = pq(m);

    s2 = pq(n);

    s3 = pq(m - n);

    printf("resut: %d ", s1 / (s2 * s3));
  }
  else
  {
    printf("数据错误!\n");
  }

  return 0;
}