c语言问题求解

来源:百度知道 编辑:UC知道 时间:2024/09/23 07:03:14
main()
{int a=5
fun(a);printf("\n");}
fun(int b)
{if(b>0)fun(b-1);
printf("%d",b);}
运行结果是0,1,2,3,4,5
运行的过程是什么,帮忙解答下,谢谢~~~~

main()
{
int a=5
fun(a);//调用函数fun
printf("\n");
}

fun(int b) //这里的b就是传递的a的值
{
if(b>0)//若b>5
fun(b-1); //调用fun函数,传递的值为b-1
printf("%d",b);
}
第一次
fun(5)中调用fun(4)
fun(4)调用fun(3)
fun(3)调用fun(2)
fun(2)调用fun(1)
fun(1)调用fun(0)

fun(0)显示0
fun(1)显示1
fun(2)显示2
fun(3)显示3
fun(4)显示4

呵呵,这是递归调用。你可以这么想:
第一步的时候,b = 5,不满足 则继续
第二步 b = 4,不满足
第三步 b = 3......
知道b = 0满足了,则输出了一个0,
接着 b = 0 又返回值到上一个fun()中,也满足了,就输出1 。。。类推。。。

以下为参考实现的框架。

#include <stdio.h>

float de[]={12.3 , 12.6, 12.5,… } /* 随机地设置一实数序列,作为每天收盘价 */

float dh[]={12.5 , 12.7, 12.9,… } /* 随机地设置一实数序列,作为每天的最高价 */

float dl[]={12.2 , 12.4, 12.4,… } /* 随机地设置一实数序列,作为每天的最低价 */

float K[MAX]; /* 当日K值,计算得出 */

float D[MAX]; /* 当日D值,计算得出 */

float J[MAX];