别烦我啦 2022-01-13 17:12 采纳率: 71.4%
浏览 21
已结题

函数递归问题,调试过程中程序遇到函数的return之后不跳出函数

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include<stdio.h>
int common(int x, int y);
int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    int t=common(n,m);
    printf("%d",t);
    return 0;
}
int common(int x, int y)
{
    if(x==y)
        return x;
      if(x>y)
      {
          x/=2;
          common(x,y);
      }
      if(x<y)
      {
          y/=2;
          common(x,y);
      }
}


  • 写回答

1条回答 默认 最新

  • _GX_ 2022-01-13 17:24
    关注

    后面两种情况没有return

    #include <stdio.h>
    
    int common(int x, int y);
    
    int main()
    {
        int n, m;
        scanf("%d %d", &n, &m);
        int t = common(n, m);
        printf("%d", t);
        return 0;
    }
    
    int common(int x, int y)
    {
        if (x == y)
            return x;
        else if (x > y)
        {
            x /= 2;
            return common(x, y);
        }
        else
        {
            y /= 2;
            return common(x, y);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月13日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日