| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 324 人关注过本帖
标题:关于函数调用的问题,求教一下
只看楼主 加入收藏
q0224100404
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2015-11-24
结帖率:37.5%
收藏
已结贴  问题点数:20 回复次数:3 
关于函数调用的问题,求教一下
我有一段程序,是求C=n!/(m!*(n-m)!)的值的,我先编写了两个函数如下
int js(int a)
{
    int n=1;
    if(a==0||a==1)n=1;
    if(a>1)n=js(a-1)*a;
    return n;
}

float c(int x,int y)
{
    float m;
    m=(js(x)*1.0)/(js(y)*js(x-y)*1.0);
    return m;
}
然后我另外新建了一个文本文件,并且在主函数中调用这两个函数
#include<stdio.h>
void main()
{
    int a,b;
    float n,m,o;
    int j,k,t;
    printf("input a,b=");
    scanf("%d%d",&a,&b);
    while(a!=0)
    {
    j=js(a),k=js(b),t=js(a-b);
    n=j*1.0/(k*t)*1.0;
        m=(js(a)*1.0)/(js(b)*js(a-b)*1.0);
    o=c(a,b);
        printf("j=%d,k=%d,t=%d,n=%f,m=%f,o=%f\n",j,k,t,n,m,o);
    printf("input a,b=");
    scanf("%d%d",&a,&b);
    }
}
循环是为了能多次输入来验证,n,m,j,k,t是为了验证中间值是否正确的,
输入a=4,b=2,结果运算出来的j=24,k=2,t=2,m=6.00000,n=6.00000都是对的,但是o=2.00000就是不对,m,n,o应该是相等的!后来我把js和c两个函数剪切到和主函数同一个文本文件下面,算出来的结果就对了,o=6.00000也等于m,n了,这是为什么呢?
2015-11-30 01:12
追公交的少年
Rank: 2
等 级:论坛游民
帖 子:29
专家分:20
注 册:2015-11-26
收藏
得分:10 
你确定?我刚刚试了下,输出都一样的。你是不是哪里弄错了
2015-11-30 01:24
q0224100404
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2015-11-24
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

我这里还是不对,郁闷了,搞不懂

[此贴子已经被作者于2015-11-30 10:37编辑过]

2015-11-30 10:34
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:10 
你这个程序我早就写过,请用递归!!这样省下一大笔麻烦

好好学习,天天向上!
2015-11-30 11:41
快速回复:关于函数调用的问题,求教一下
数据加载中...
 
   



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

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