在跟同学的讨论中发现他用的另一种解法,将输入的整数循环求余,每次余出的数放到另外一个不断升位的变量中,这个方法貌似可行

#include <stdio.h>

int converse(int n);//定义的函数
int main(void)
{
int n;
printf("输入一个十进制整数:");
scanf("%d", &n);
printf("对应的二进制整数:%d\n", converse(n));
return 0;
}

int converse(int n) //为了好看,函数体放后面了(并不觉得)
{
int r, p=1, sum=0;
while(1) {
r = n % 2;
n /= 2;
sum += r * p;
p *= 10;
if(n<2) {
sum += n * p;
break;
}
}
return sum;
}