用c语言编写函数把任意十进制数转换成二进制数

这是我的做法,我是初学者
#include<stdio.h>
main()
{
int i,n,k,x[10];
scanf("%d",&n);
for(i=0;n=0;i++)
{
x[i]=n%2;
n=n/2;
}
for(k=i;k=(-1);k--)
printf("%d",x[i]);
}
这个在输入数后会产生1大串数字。。。求改正

#include<stdio.h>
main()
{
int i,n,k,x[10];
scanf("%d",&n);
for(i=0;n!=0;i++)//n不等于0时.....
{
x[i]=n%2;
n=n/2;
}
for(k=i-1;k!=(-1);k--)//k初始值为i-1,k的条件为不等于-1
printf("%d",x[k]);//输出x[k],而不是x[i]
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-13
#include<stdio.h>
main()
{
int i,n,k,x[10];
scanf("%d",&n);
for(i=0;n!=0;i++)// 判断条件 n!=0
{
x[i]=n%2;
n=n/2;
}
for(k=i-1;k!=(-1);k--)// 判断条件 k!=-1
printf("%d",x[k]);// 输出x[k],不是x[i]
}追问

你们都只注意到我for语句的错误,没注意到程序的可行性。。。。。。
今天早上吃早餐时,我已经发现了错误。。。把for结束的条件改正了
改成:
#include
main()
{
int n,i,k,a1[10],m;
scanf("%d",n);
for(i=0;n>=1;i++)
{
a1[i]=n%2;
n=n/2;
}
m=i;
for(k=0;k<=m;k++)
printf("%d",a1[k]);
}
可是又出现了xx指令引用XX内存,该内存不能written!
追加15分求解

追答

scanf("%d",&n);

本回答被提问者和网友采纳
第2个回答  2012-12-09
第一个for语句:(应该是n!=0).要仔细点哦
for(i=0;n!=0;i++)
{
x[i]=n%2;
n=n/2;
}
第3个回答  2020-11-26

C语言_010_二进制转十进制_上

第4个回答  2018-01-23
用while函数,将所得除10并记住除的次数后乘回

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网