求解一道关于C语言的题目!!求高手,急~

#include<stdio.h>main()intx,y,j,u,v,a[8];scantf("%d",&x);y=x;i=0;do{u=y/2;a[i]=y%2;i+... #include<stdio.h>
main()
int x,y,j,u,v,a[8];
scantf("%d",&x);
y=x;
i=0;
do
{
u=y/2;
a[i]=y%2;
i++;y=u;
}while(y.+1);
for(j=i-1;j.=0;j--)
printf("%d",a[j]);
}
输入18,并回车
求输出的结果。
要解释为什么啊!!不要自给个答案,尤其是要细讲下
for(j=i-1;j.=0;j--)
没接触过。
小弟在此拜谢可!!
中间那个是while(y>=1)
后面的是j>=0
展开
 我来答
陈一根1
2011-02-26 · 业精于勤荒于嬉行成于思毁于随-陈一根
陈一根1
采纳数:44 获赞数:168

向TA提问 私信TA
展开全部

#include<stdio.h>

main()

{

int x,y,j,i,u,v,a[8];

scanf("%d",&x);

y=x;

i=0;

do

{

 u=y/2;

a[i]=y%2;

i++;y=u;

}

while(y>=1);

for(j=i-1;j>=0;j--)

printf("%d",a[j]);

}

答案在后面  for(j=i-1;j.=0;j--)  这一句是你打错了吧?

    你是想写for(j=i-1;j>=0;j--)吧?

Oo灰原oO哀Oo
2011-02-26 · 超过10用户采纳过TA的回答
知道答主
回答量:16
采纳率:0%
帮助的人:28.1万
展开全部
感觉上这个程序的作用是将输入的x转换为二进制表示形式并输出,
程序中有几处错误:
#include<stdio.h>
main()
int x,y,j,u,v,a[8]; /*主函数“{”漏掉了,变量i没有定义
scantf("%d",&x); /*函数拼写错误“scanf”
y=x;
i=0;
do
{
u=y/2;
a[i]=y%2;
i++;y=u;
}while(y.+1); /*“.+”应该是输入或扫描时的错误,应为“>=”
for(j=i-1;j.=0;j--) /*“.=”同上,应为“>=”
printf("%d",a[j]);
}

程序分析:
do...while循环中进行通过除2取余的方法将十进制数转换为二进制数按位存入数组a中,
最后的for循环将a数组倒序输出,得出转换过的二进制数。

程序代码:
#include<stdio.h>
main()
{
int x,y,i,j,u,v,a[8];
scanf("%d",&x);
y=x;
i=0;
do
{
u=y/2;
a[i]=y%2;
i++;y=u;
}
while(y>=1);
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
}

输出结果:
(输入为十八时)10010

结果分析:
输入:x=18,y=18,i=0
do...while循环:
i 0 1 2 3 4 5
y 9 4 2 1 0
u 9 4 2 1 0
a[i] 0 1 0 0 1
for循环:
j 4 3 2 1 0
a[j] 1 0 0 1 0
因此输出为10010
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8cb420e
2011-02-26 · 超过27用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:75.4万
展开全部
那里是while(Y>=1)吧
输出 10010
这个是求取 输入数据的二进制数据
第一个循环将求取结果存入a[i]
第二个循环,依次输出结果
for(j=i-1;j>=0;j--) 简单的循环 j初始值=i-1, 为二进制数组的最高位(4),然后依次递减直到为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b162a02
2011-02-26 · TA获得超过511个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:184万
展开全部
#include<stdio.h>
main()
{
int i,x,y,j,u,v,a[8];

scanf("%d",&x);//输入18,把值赋给x
y=x;//y=18
i=0;//将i赋值,为0
do//开始循环
{
u=y/2;//给u赋值
a[i]=y%2;//
i++;//给a[0]到a[18]赋值
y=u;//把u的值给y,
}while(y>=1);//当y>=1时,结束循环,
for(j=i-1;j>=0;j--)//这是一个for循环,
printf("%d",a[j]);//输出a的每一个值
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Forsyan
2011-02-26
知道答主
回答量:12
采纳率:0%
帮助的人:2万
展开全部
这个是把10进制转换为2进制,对2求余得到不是1就是0,然后赋值给a[i],
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式