使用栈将一个很长(>30)的十进制数转换为二进制数

如题所述

第1个回答  推荐于2017-10-13
#include<stdio.h>
#include<string.h>
int main()
{
char a[2000];
int x[2000]={0};
while(scanf("%s",a)!=EOF)
{
int len=strlen(a);
int m,n,k,j=0;
for(; len!=0; len=k)
{
m=0,n,k=0;
for(int i=0; i<len; i++)
{
n=m*10+a[i]-'0';
m=n%2;
if(k==0&&n/2!=0)
a[k++]=n/2+'0';
else if(k!=0)
a[k++]=n/2+'0';
if(i==len-1)
x[j++]=m;
}
}
for(int i=j-1; i>=0; i--)
printf("%d",x[i]);
printf("\n");
}
return 0;
}