动感光波925 2021-11-18 02:38 采纳率: 77.8%
浏览 40
已结题

C语言的函数调用问题

#include <stdio.h>
int main(void)
{

​int f(int a);
​int m, n;
​printf("请输入一个数:\n");
​scanf_s("%d", &m);
​for (n = 0; m != 1; n++)
​​m = f(m);
​printf("经角谷定理得经过 %d 次可得到", n);
​return 0;

}

int f(int a)
{
​if (a % 2 == 1)
​​a = a * 3 + 1;
​else
​​a = a / 2;
​return a;
}
输入5得到5 求此函数的详细执行流程 被调用函数的a与主函数完全不相干呀 此函数怎么运行的

  • 写回答

2条回答 默认 最新

  • 关注

    被调用函数的a与主函数的m是相互传递的。没有不相干。

    循环 ​​m = f(m); 调用f函数把主函数的m的值 传递给 f函数的a,在f函数中改变a的值之后,return a; 又把a的值返回重新赋值给主函数的m。

    下次循环又把主函数的m的值 传递给 f函数的a。。。。。。。
    这样直到m等于1为止。

    img

    如有帮助,望采纳!谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 修改了问题 11月18日
  • 创建了问题 11月18日

悬赏问题

  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误