#include <stdio.h>
void main()
{
int n,m;
printf("Enter the number: ");
scanf("%d",&n);
while (n!=0)
{
m=n%2;
printf("%d",m);
n=n/2;
}
printf("\n");
}
这是我用循环做的.不过结果要反过来读.
谁能帮我修正一下.
法一:放到数组中,反向输出
法二:栈(其它不如数组简单,只是意义更明确)
----------------解决方案--------------------------------------------------------
请问怎么实现栈这个功能???能举一下例吗??
----------------解决方案--------------------------------------------------------
就是用整除加取余思想...你可以写一个任意进制之间的整数转换
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int n,m;
printf("Enter the number: ");
scanf("%d",&n);
while (n!=0)
{
m=n%2;
printf("%d",m);
n=n/2;
}
printf("\n");
}
这是我用循环做的.不过结果要反过来读.
谁能帮我修正一下.
谢谢大侠 出手相助
----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{int i,j,m=475;
char a[40];
i=0;
while(m!=0)
{a[i++]=m%2+'0';
m/=2;};
for(j=i-1;j>=0;j--)
printf("%c",a[j]);
getch();
}
----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{int i,j,m=475;
char a[40];
i=0;
while(m!=0)
{a[i++]=m%2+'0';
m/=2;};
for(j=i-1;j>=0;j--)
printf("%c",a[j]);
getch();
}
这是"法一:放到数组中,反向输出"
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int n,m,p[10],i=0,j;
printf("Enter the number: ");
scanf("%d",&n);
while (n!=0)
{
m=n%2;
p[i]=m;
i++;
n=n/2;
}
for(j=i-1;j>=0;j--)
printf("%d",p[j]);
printf("\n");
}
这样放顺序就对了
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int n,m;
printf("Enter the number: ");
scanf("%d",&n);
while (n!=0)
{
m=n%2;
printf("%d",m);
n=n/2;
}
printf("\n");
}
这是我用循环做的.不过结果要反过来读.
谁能帮我修正一下.
这个用栈是最好的方法,
要不如果用你的方法做的话,因为加上数组是一种方法,但是我们不知道这个数组要多大.
所以可以选择用连表.这样空间不浪费.
----------------解决方案--------------------------------------------------------
int zhuanhuan(int a[],long num,int m)
{
int i=0;
while(n)
{
a[i++]=n%m;
n/=m;
}
return i;
}
----------------解决方案--------------------------------------------------------
用栈的方法就是递归。下面是偶的程序:
#include<stdio.h>
int main()
{
long int n;
void sub(long);
printf("Please enter a long intger:\n");
scanf("%ld",&n);
sub(n);
return 0;
}
void sub(long x)
{
long temp;
temp = x % 2;
if (x > 0)
{
sub(x/2);
printf("%1d",temp);
}
else printf("\n");
}
----------------解决方案--------------------------------------------------------