Kauom 2022-07-19 14:11 采纳率: 50%
浏览 46
已结题

C语言的编程问题求解!

我的C程序为什么结果会是6啊!递归调用应该只是返回给倒数第二个调用的函数才对啊!其他的递归调用函数应该是没有接收到返回值才对啊!

#include <stdio.h>

int i = 1;
int fc(int n){
  if(n == 1)
    return i;
  else if(n % 2 == 0) {
    fc(n / 2);
    i++;
  }
  else {
    fc(3 * n + 1);
    i++;
  } 
}

int main() {
  int n, step;
  n = 5;
  step = fc(n);
  printf("\n%d \n", step);
  printf("\n%d", i);
  
  return 0;  
}
  • 写回答

3条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 7月27日
      • 已采纳回答 7月19日
      • 创建了问题 7月19日

      悬赏问题

      • ¥40 python,计算机程序运行结果很奇怪
      • ¥15 有关时间计算器的问题
      • ¥200 Chrome浏览器自动保存密码需要解密!来人
      • ¥18 关于#c语言#的问题:如何把下面几个代码放在一起编序号,然后输入对应数字运行对应代码,还可以返回重输
      • ¥30 windows下无法运行go test的问题
      • ¥15 多个Rigify骨骼 导入一起 后 没有 控制器面板
      • ¥15 想问一下sprak ada语言的pre和post怎么设
      • ¥15 使用python将分子模拟输出.gro文件
      • ¥15 港诡实录的背包系统拆解
      • ¥15 宽带IP网络路由器的初始路由表和最终路由表