C语言十进制转换为二进制问题

#defineN16#include<stdio.h>voidmain(){inti,a[N]={0},x,s,n=0;printf("Pleaseinputadecim... #define N 16
#include<stdio.h>
void main()
{
int i,a[N]={0},x,s,n=0;
printf("Please input a decimalism number:\n");
scanf("%d",&x);
while(x>0)
{
s=1;
while(s<x)
{
s*=2;
n++;
}
a[n-1]=1;
x=x-s/2;
}
printf("\n");
for(i=N-1;i>=N;i--)
{
printf("%d",a[i]);
if(i%4==0)printf(" ");
}
}
改程序哪里有错,请大家帮忙在这个程序的基础上进行修改,谢谢!
请不要灌水!解决后还有追加悬赏!
展开
 我来答
UncleOcean
2011-02-08 · TA获得超过360个赞
知道小有建树答主
回答量:254
采纳率:100%
帮助的人:165万
展开全部
#define N 16
#include <stdio.h>
int main()
{
int i,a[N]={0},x,s,n=0;
printf("Please input a decimalism number:\n");
scanf("%d",&x);
while(x>1)//此处有改动
{
s=1;
while(s<x)
{
s*=2;
n++;
}
a[n-1]=1;
x=x-s/2;
}
printf("\n");
for(i=N-1;i>=0;i--)//此处有改动
{
printf("%d",a[i]);
if(i%4==0)printf(" ");
}
}
我只帮你找出了无限循环和无法输出的问题,你的编码习惯不是很好,变量命名很纠结。。。你似乎是想模拟笔算的方法来进行转换,想法很好,加油吧。
wangbwell
2011-02-08 · TA获得超过1238个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:749万
展开全部
#define N 16
#include<stdio.h>
void main()
{
int i,a[N]={0},x,s,n=0;
printf("Please input a decimalism number:\n");
scanf("%d",&x);
while(x>0)
{
s=1;
n=0; // 增加
while(s<x)
{
s*=2;
n++;
}
a[n-1]=1;
x=x-s/2;
}
printf("\n");
for(i=N-1;i>=N;i--)
{
printf("%d",a[i]);
if(i%4==0)printf(" ");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ajlija
2011-02-09 · TA获得超过939个赞
知道大有可为答主
回答量:1118
采纳率:0%
帮助的人:1089万
展开全部
#include <stdio.h>
void tenton(int n)
{
int i=0,a[20];
while(n)
{
a[i]=n%2;
n/=2;
i++;
}
for(i-=1;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
main()
{
int n;
printf("input a number:");
scanf("%d",&n);
tenton(n);//函数调用
}
//调试成功!运行正确!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式