| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:Dev-c++中函数返回值的问题
只看楼主 加入收藏
曹操cc
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-4-24
结帖率:100%
收藏
 问题点数:0 回复次数:4 
Dev-c++中函数返回值的问题
dev-c++编程,gcc编译
/*计算最大公约数*/
#include <stdio.h>
#include <string.h>
#include <math.h>
unsigned int gcb(unsigned int m,unsigned int n);
main()
{
   unsigned int a,b;
   unsigned int c=0;
   printf("please input:");
   scanf("%d,%d",&a,&b);
   printf("\na=%d,b=%d",a,b);
   c=gcb(a,b);
   printf("c=%d\n",c);
   system("pause");
}
unsigned int gcb(unsigned int m,unsigned int n)
{
  unsigned int i;
  i=m%n;
  printf("\ni=%d,n=%d",i,n);
  if(i==0)
  {
    printf("n=%d\n",n);
    return n;   
    }
  else
    {
       gcb(n,i); }
  }  
在这个程序中编译运行都通过了
但比如输入15,5时,函数返回5,c输出5,没问题,如改成输入5,15时,函数返回值就不是5而是一个垃圾值。
同样这个程序在win-tc中运行,就没有上述问题。
现在列出来,希望圈内朋友们帮我参详参详,找出问题。
搜索更多相关主题的帖子: 返回值 函数 
2009-08-02 11:40
prankmoon
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:161
专家分:921
注 册:2009-7-21
收藏
得分:0 
在gcb函数中,刚一进去,你就 i=m%n; 是不是这里需要比较哪一个大?
2009-08-02 11:52
曹操cc
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-4-24
收藏
得分:0 
回复2楼
如果加大小比较当然可以,不加的话,算法上也是可以的,而且在win-tc下运行时没问题的
无论是输入15,5还是5,15都没问题。
2009-08-02 12:08
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:0 
就拿你这个函数来讲,你觉得有返回值吗?
就拿你说的输入5,15来讲。
m=5,n=15,i=5
i!=0,继续gcd(15,5)
没返回值啊。
加一句吧,在你的else后面 gcd(n,i)前面加个 return吧。

unsigned int gcb(unsigned int m,unsigned int n)
{
  unsigned int i;
  i=m%n;
  printf("\ni=%d,n=%d",i,n);
  if(i==0)
  {
    printf("n=%d\n",n);
    return n;   
    }
  else
    {
       return gcb(n,i); }
  }
2009-08-02 13:29
prankmoon
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:161
专家分:921
注 册:2009-7-21
收藏
得分:0 
ls所言甚是。

BTW:
如果你要使用 system("pause"); 的话,建议你给包含文件加上 #include <stdlib.h>
因为 system 函数是在那里面声明的。

LZ,你也太吝啬了,这个帖子居然给0分,默认是20分,看来你是故意不给,你不是还有那么多分么?哈哈,开个玩笑,偶是来论坛学习的,也不在乎什么分不分的。

[[it] 本帖最后由 prankmoon 于 2009-8-2 13:50 编辑 [/it]]
2009-08-02 13:47
快速回复:Dev-c++中函数返回值的问题
数据加载中...
 
   



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

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