标题:function call pointer(指针)遇到的问题....
只看楼主
HenryJay
Rank: 1
等 级:新手上路
帖 子:17
专家分:6
注 册:2009-10-2
结帖率:100%
已结贴  问题点数:20 回复次数:6 
function call pointer(指针)遇到的问题....
感觉没有错啊!
但计算答案是一直出现address而不是value.....

#include <stdio.h>

void addFractions(int nrator1,int denom1,int nrator2,int denom2,int *nratorSum,int *denomSum);

int main()
{

 int nrator1,denom1,nrator2,denom2,nratorSum,denomSum;

 printf("Please enter the first fraction with numerator and denominator respectively :\n");
 scanf("%d%d",&nrator1,&denom1);
 
 printf("\n");
 
 printf("Please enter the second fraction with numerator and denominator respectively :\n");
 scanf("%d%d",&nrator2,&denom2);


 printf("The value sum of 2 fraction is :\n");
 printf("%d/%d+%d/%d=%d/%d\n\n",nrator1,denom1,nrator2,denom2,*nratorSum,*denomSum);

 addFractions(nrator1,denom1,nrator2,denom2,&nratorSum,&denomSum);

 return 0;

}
 void addFractions(int nrator1,int denom1,int nrator2,int denom2,int *nratorSum,int *denomSum)
{
 
 *nratorSum=(nrator1*denom2)+(nrator2*denom1);
 *denomSum=denom1*denom2;

}
顺便问问最简分数如何定义?
如果应用在c里有是怎样?
搜索更多相关主题的帖子: pointer 指针 call function 
2009-10-11 00:05
Aion
Rank: 2
等 级:论坛游民
帖 子:19
专家分:52
注 册:2009-10-10
得分:20 
#include <stdio.h>
 
void addFractions(int nrator1,int denom1,int nrator2,int denom2,int *nratorSum,int *denomSum);
int gcd(int a, int b)
{
    if (b>1)
    {
        return gcd(b, a%b);
    }
    return a;
}
int main()
{
 
    int nrator1,denom1,nrator2,denom2,nratorSum,denomSum;
 
    printf("Please enter the first fraction with numerator and denominator respectively :\n");
    scanf("%d%d",&nrator1,&denom1);
 
    printf("\n");
 
    printf("Please enter the second fraction with numerator and denominator respectively :\n");
    scanf("%d%d",&nrator2,&denom2);
 
 
    printf("The value sum of 2 fraction is :\n");
    addFractions(nrator1,denom1,nrator2,denom2,&nratorSum,&denomSum);
    printf("%d/%d+%d/%d=%d/%d\n\n",nrator1,denom1,nrator2,denom2,nratorSum,denomSum);
 
    return 0;
 
}
void addFractions(int nrator1,int denom1,int nrator2,int denom2,int *nratorSum,int *denomSum)
{
    int n;
    *nratorSum=(nrator1*denom2)+(nrator2*denom1);
    *denomSum=denom1*denom2;
    n = gcd(*nratorSum, *denomSum);
    *nratorSum /= n;
    *denomSum /= n;
}

Admin

专门做题
2009-10-11 00:18
HenryJay
Rank: 1
等 级:新手上路
帖 子:17
专家分:6
注 册:2009-10-2
得分:0 
可以解释一点吗?
有些的我还没学到.....
什么是gcd?

我知道我错在那里了
我的function call 放错位置了,所带回来的数据没放在printf里,
所以数据是出现address而不是value

[ 本帖最后由 HenryJay 于 2009-10-11 02:20 编辑 ]
2009-10-11 02:04
HenryJay
Rank: 1
等 级:新手上路
帖 子:17
专家分:6
注 册:2009-10-2
得分:0 
if(nratorSum>denomSum)
        j=nratorSum;
    else
        j=denomSum;

    for(i=2;i<=nratorSum;i++)
       {
        if((nratorSum%i==0)&&(denomSum%i==0))
            {
            gcd=i;
            }}
        nratorSum/=gcd;
        denomSum/=gcd;

如果不要call int gcd(int a, int b)的话
因为习题里没要求。
2009-10-11 02:38
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
得分:0 
你的程序好难看懂喔,不过最简分数定义我知道就是分子和分母没有公因数如2/4就不是最简式,因为它们有一个公因数2,c语言里面吗很难讲的清楚,其实我是一个新手想来赚点分数问别人问题

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2009-10-11 09:18
dahai6789
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-10-10
得分:0 
学习下
2009-10-11 09:33
shuiyunjian
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-9-11
得分:0 
rtt
2009-10-11 09:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-288102-1-1.html




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

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