十进制转二进输出-C语言
用循环就很容易解决问题
代码如下:
/**
* title: 十进制转二进输出
* by: 小林
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void fun(char *str, int n)
{
char *t = str;
do// 用do-while是为了解决输入0的问题
{
*t = '0'+n%2;
n /= 2;
++t;
}while(n);// n不为0则继续循环
*t = '\0';
strrev(str);// 反转字符串
}
int main(void)
{
char array[64];
int num;
scanf(" %d", &num);
fun(array, num);
printf("%s", array);
return EXIT_SUCCESS;
}
运行效果如下:
用递归直接输出就简单多了:
void fun1(int n)
{
if(n/2)
fun1(n/2);
putchar('0'+n%2);
}
编译环境:Dev-C++ 5.11