| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 725 人关注过本帖
标题:感激不尽
只看楼主 加入收藏
l1288
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-10-8
收藏
 问题点数:0 回复次数:3 
感激不尽

各位大侠,小弟刚接触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(); }

各位,那位有空帮我看看啊!!

搜索更多相关主题的帖子: 感激不尽 
2004-10-10 22:11
lyn_gemini
Rank: 1
等 级:新手上路
帖 子:103
专家分:3
注 册:2004-9-15
收藏
得分:0 

估计应该是改一下你的递归程序,先试试看,不行再说

long n(int x) { if (x==1) return 1 ; else return n(x-1)*x ; }


欢迎访问我的博客--*IT一粟*-- : http://lyn_gemini.
2004-10-10 22:47
心若在
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2004-9-21
收藏
得分:0 

你这个问题有点怪;


我知道我菜 但我会尽我最大的努力去帮助别人!
2004-10-10 22:55
mingyue
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2004-5-13
收藏
得分:0 

#include "Stdio.h" #include "Conio.h" long n(int x); /*先声明函数n的类型*/

long hanshu(int dishu1,int dingshu1)/*返回的结果是long型,因此函数应为long型*/ { long z; z=n(dishu1)/(n(dishu1-dingshu1)*n(dingshu1)); return z; } long n(int x) { 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(); }


2004-10-11 21:33
快速回复:感激不尽
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031774 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved