各位大侠,小弟刚接触C,遇到了问题,那位有空指教一下,感激不尽啊!!!
我是想实现一个数学函数,就是排列组合那里的求组合数;
n函数定义为整形就可以运行,可是数字大了就不行了!这我知道原因,所以我换成了LONG形
可系统提示说数据类型不匹配,我找了半天调不出来,那位高手帮我看看啊!!!!!!
#include "Stdio.h" #include "Conio.h" int hanshu(int dishu1,int dingshu1)/*求结果的函数*/ {long z; z=n(dishu1)/(n(dishu1-dingshu1)*n(dingshu1)); return z;} long n(int x)/*求阶乘的函数,就是显示这里出错!把long改成int 就没错了!可结果不如意,数字大了就不行了!*/ { long m; if (x==1) m=1; else m=n(x-1)*x; return m; }
main() { int dishu,dingshu; scanf("%d%d",&dishu,&dingshu); printf("%ld",hanshu(dishu,dingshu)); getch(); }
各位,那位有空帮我看看啊!!