Justin1 发表于 2020-5-25 21:09:30

递归十进制转二进制

有大佬帮忙看看代码吗,为什么我的打印不出来呢#include<stdio.h>

void binary(int n);
void binary(int n)
{
        if(n/2 == 0)
        {
                printf("%d\n",n);
        }
        else
        {
                binary(n/2);
                printf("%d\n",n % 2);
        }

}

int main()
{
        int n;

        printf("请输入一个整数:");
        scanf("%d\n",&n);
       
        binary(n);
       
        return 0;
}

sunrise085 发表于 2020-5-25 21:09:31

我这里运行没问题啊
只是有点小毛病,不是语法或逻辑错误
第23行,scanf不应该出现 '\n',或许你的编译器认为这个需要你再输入一个回车字符,所以一直等待你输入吧。
还有,第8行和第13行的'\n'应该去掉,那样才是把转换后的二进制打印在一起了。

小甲鱼的铁粉 发表于 2020-5-25 21:48:13

sunrise085 发表于 2020-5-25 21:19
我这里运行没问题啊
只是有点小毛病,不是语法或逻辑错误
第23行,scanf不应该出现 '\n',或许你的编译器 ...

完美{:5_109:}

Justin1 发表于 2020-5-25 21:51:37

sunrise085 发表于 2020-5-25 21:19
我这里运行没问题啊
只是有点小毛病,不是语法或逻辑错误
第23行,scanf不应该出现 '\n',或许你的编译器 ...

完美,谢谢大佬,原来是这个错误{:10_257:}

Jackeyloveme 发表于 2020-5-25 22:39:30

#include<stdio.h>
void fun(int n)
{
      if(n/2)
         
         fun(n/2);
         printf("%d\n",n%2);
                         
}
int main()
{       int n;
          void fun(int n);      
      printf("请输入一个整数:");
      scanf("%d",&n);
      fun(n);
      return 0;
}
给你看一个改进版

Justin1 发表于 2020-5-26 10:25:53

Jackeyloveme 发表于 2020-5-25 22:39
#include
void fun(int n)
{


明白你的代了,不过我感觉我的更容易理解
页: [1]
查看完整版本: 递归十进制转二进制