| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 726 人关注过本帖
标题:分成多个函数时,无法输出正确答案
只看楼主 加入收藏
mghtyys
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-12-13
收藏
 问题点数:0 回复次数:12 
分成多个函数时,无法输出正确答案

首先感谢指导我的朋友们。
刚刚学了函数,于是想练练手,但程序编完以后发现一个问题。
若是独立的三个程序,他们都可以运行,但是合并后,问题却出现了,就是无法输出正确答案。
程序的目的是为了求组合问题,
main()
{
int a,b,c,d;
float sum;
int frist(int a);
int second(int a,int b);
scanf("%i,%i",&a,&b);
c=frist(a);
d=second(a,b);
sum=c/d;
printf("the sum is %f",sum);
getch();
}


int second(int a,int b)
{
int sum,j;
sum=1;
scanf("%i,%i",&a,&b);
j=b;
while(b>=j-a+1)
{
sum=sum*b;
--b;
}
return(sum);
}


int frist(int a)
{
int sum;
sum=1;
scanf("%i",&a);
while (a!=0)
{
sum=sum*a;
--a;
}
return(sum);
}

搜索更多相关主题的帖子: 输出 
2006-12-23 10:30
mayudong1
Rank: 2
等 级:论坛游民
威 望:1
帖 子:348
专家分:21
注 册:2006-4-18
收藏
得分:0 

出现除法时最好把分子或分母其中一个强制转换成float型,否则结果会是int型的


2006-12-23 13:19
xianlin_lea
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-10-6
收藏
得分:0 
以下是引用mghtyys在2006-12-23 10:30:40的发言:

首先感谢指导我的朋友们。
刚刚学了函数,于是想练练手,但程序编完以后发现一个问题。
若是独立的三个程序,他们都可以运行,但是合并后,问题却出现了,就是无法输出正确答案。
程序的目的是为了求组合问题,
main()
{
int a,b,c,d;
float sum;
int frist(int a);
int second(int a,int b);
scanf("%i,%i",&a,&b); \*此处已经输入了a,b
c=frist(a); \*且此处也传递了!
d=second(a,b);
sum=c/d;
printf("the sum is %f",sum);
getch();
}


int second(int a,int b)
{
int sum,j;
sum=1;
scanf("%i,%i",&a,&b);
j=b;
while(b>=j-a+1)
{
sum=sum*b;
--b;
}
return(sum);
}


int frist(int a)
{
int sum;
sum=1;
scanf("%i",&a); \*这里为何还要输入?看不明白!
while (a!=0)
{
sum=sum*a;
--a;
}
return(sum);
}

整形数相除结果仍为整数,且采用向0取整的方法取整

借问一句:%i 是什么型数?


2006-12-23 14:02
何必天才
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-12-15
收藏
得分:0 
main()
{
int a,b,c,d; /*b c d 整形的*/
float sum; /*sum 实型的,难道要用实型的数据空间,来存放整形的和*/
int frist(int a);
int second(int a,int b);
scanf("%i,%i",&a,&b);
c=frist(a);
d=second(a,b);
sum=c/d; /*整形的数除法要小心,因为没有小数*/
printf("the sum is %f",sum);
getch();
}

这几处就不正确

我只会C和PC
2006-12-23 18:58
slong
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-11-9
收藏
得分:0 
以下是引用mghtyys在2006-12-23 10:30:40的发言:

首先感谢指导我的朋友们。
刚刚学了函数,于是想练练手,但程序编完以后发现一个问题。
若是独立的三个程序,他们都可以运行,但是合并后,问题却出现了,就是无法输出正确答案。
程序的目的是为了求组合问题,
main()
{
int a,b,c,d;
float sum;
int frist(int a);
int second(int a,int b);
scanf("%i,%i",&a,&b); // %i 有符号十进制整数(与%d相同)
c=frist(a);
d=second(a,b);
sum= (float) c / d;
printf("the sum is %f",sum);
getch();
}


int second(int a,int b)
{
int sum,j;
sum=1;
scanf("%i,%i",&a,&b); // 这里好象多此一举了
j=b;
while(b>=j-a+1)
{
sum=sum*b;
--b;
}
return(sum);
}


int frist(int a)
{
int sum;
sum=1;
scanf("%i",&a); // 这里好象多此一举了
while (a!=0)
{
sum=sum*a;
--a;
}
return(sum);
}

2006-12-23 19:59
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用xianlin_lea在2006-12-23 14:02:28的发言:

整形数相除结果仍为整数,且采用向0取整的方法取整

借问一句:%i 是什么型数?

记得好想等于%d


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-12-23 20:10
senyee
Rank: 1
等 级:新手上路
帖 子:422
专家分:0
注 册:2006-11-28
收藏
得分:0 

郁郁郁闷.....

菜鸟~~请多指教~~
2006-12-23 23:09
mghtyys
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-12-13
收藏
得分:0 

不好意思,因为是把三个程序合编的,整合过程中,出现了
这么低级的错误,对不起


我想要快乐。
2006-12-24 14:11
mghtyys
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-12-13
收藏
得分:0 

在国外的书籍中%i与%d是可以通用的


我想要快乐。
2006-12-24 14:53
mghtyys
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-12-13
收藏
得分:0 
由于学校网络问题,所以发表帖子以后一直没能上网
刚刚上来后,看到还是有这么多朋友热心指教,
非常感动,经过slong的指正,程序得到正常的运行。
我不禁感觉到,在编程的道路上,仔细才是王道。
在此,我再一次感谢那些曾经帮助过我的朋友们

我想要快乐。
2006-12-24 15:00
快速回复:分成多个函数时,无法输出正确答案
数据加载中...
 
   



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

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