C语言大难题

来源:百度知道 编辑:UC知道 时间:2024/06/09 08:48:19
#include<stdio.h>
int fac(int k)
{
int i,m;
for(i=1,m=1;i<=k;i++)
m=m*i;
return (m);
}
void main()
{
int fac(int k);
int m,n,c;
scanf("%d,%d",&m,&n);
c=fac(n)/(fac(m)*fac(n-m));
printf("%d\n",c);
}
请问输入2,3结果为啥是0
这程序有啥问题

程序没问题,我运行了.结果是3
你运行时应该输入2,3.注意那个逗号,要不就改程序代码.
scanf("%d,%d",&m,&n);
->
scanf("%d%d",&m,&n);

你没给k初值...

scanf("%d,%d",&m,&n)中的%d之间使用的分隔符号,在输入数据时应使用相同分隔号。比如你若使用“.”,那么输入数据时,也应该使用.来分隔开!

#include<stdio.h>
#include<stdlib.h>

int fac(int k)
{
int i,m;
for(i=1,m=1;i<=k;i++)
m=m*i;
return (m);
}
int main()
{
int fac(int k);
int m,n,c;
scanf("%d,%d",&m,&n);
c=fac(n)/(fac(m)*fac(n-m));
printf("%d\n",c);
system("pause");
}
运行正确,结果为3