如何在C语言中创建一个void函数,用整数除法将数字一分为二,直到值为1?

mwkjh3gx  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(119)

编写一个C程序,其中包含一个名为half的递归函数。该函数有一个整数输入参数。该函数将继续用整数除法将数字除以2,直到值为1。从最小到最大打印出每个递归调用的值。该函数具有以下原型:
void half(整数值);
我设法写出了函数,但数字开始从最大值到最小值打印。

void half(int value){
  if(value>1){
    printf("%d\n", value);
    half(value/2);
    return;
  }else{
      printf("1");
  }
}

this was my function so far.
slhcrj9b

slhcrj9b1#

只需将对half的递归调用移到printf之前,以便从最小到最大打印。
您也可以删除else分支。

#include <stdio.h>

void half(int value)
{
    if (value > 1)
        half(value / 2);

    printf("%d\n", value);
}

int main(void)
{
    half(144);
}

输出量:

1
2
4
9
18
36
72
144

相关问题