C语言逆向输出

Python014

C语言逆向输出,第1张

首先,很欣赏你的要求;然后我来讲讲我的思路,仅供参考:

思路(一):直接用int类型做,判断位数时,当然用循环从小到大循环,用"%"(模)的方式判断;你的第二第三个问题一起做比较好,用求模和整除的方式分割这个数,然后把分割的每一位数累加到另一个int类型上。

思路(二):用字符串做,用库函数strlen很容易判断位数,也很容易输出每位数,以及倒序;其实倒序更容易,只要倒着输出就行,不一定要重新放到另一个字符串中。

思路(三):用递归函数做,用一个int作为计数,一个char类型的用来逐个放置,控制好结束条件,即输入“\n”时结束,然后自然容易做到那3点。

其实,以上逆序的方法都可以换成对称的思路……

#include

"stdio.h"

void

Convert(int

n)

{

int

x=0,a[100]

while(n)

{

a[x++]=n%2

n/=2

}

--x

printf("\n二进制为:\n")

while(x>=0)

printf("%d",a[x--])

}

void

main()

{

int

m

printf("请输入一个十进制数:\n")

scanf("%d",&m)

Convert(m)

}

这个吧

/////////////////////////////////////////

////////////////////////////////////////

你的意思是返回一个二进制数?

#include

"stdio.h"

int

Convert(int

n)

{

int

x=0,a[100],m=0

while(n)

{

a[x++]=n%2

n/=2

}

--x

while(x>=0)

m=10*m+a[x--]

return

m

}

void

main()

{

int

m,n

printf("请输入一个十进制数:\n")

scanf("%d",&m)

n=Convert(m)

printf("%d",n)

}

不过返回的数形式上是二进制。