C语言求两道题的详细解题过程

 我来答
一剑出血
高粉答主

2016-06-15 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
在do-while循环中:
第一次执行,x[0] = 0,之后a变为1,c变为7。判断c>=1条件,仍然满足,继续循环。
第二次执行,x[1] = 1,之后a变为2,c变为3。判断c>=1条件,仍然满足,继续循环。
第三次执行,x[2] = 1,之后a变为3,c变为1。判断c>=1条件,仍然满足,继续循环。
第四次执行,x[3] = 1,之后a变为4,c变为0。判断c>=1条件,不满足,退出循环体。

最后打印输出时就是将x[a]倒序输出,因此依次输出了x[3]、x[2]、x[1]、x[0]。

百度嫌我字数不够
追问
这个我懂了,第二个呢
追答
哪来的第二个,不是只有一张图片、一道题么。
KazeToTori
2016-06-15 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:74
采纳率:100%
帮助的人:39.3万
展开全部
这题首先你先重写一下这段代码

int x[6];
int a=0;
int b;
int c=14;
do{
x[a]=c%2;
c /= 2;

a++;

}while(c>=1);

for(b=a-1; b>=0;b--)
{
printf("%d\n",x[b]);

}

do...while循环中会经历四次循环
第一次: x[0]=0; c=7; a=1;
第二次: x[1]=1; c=3; a=2;
第三次: x[2]=1; c=1; a=3;
第四次: x[3]=1; c=0; a=4;

for循环中其实是倒着从索引为3的地方开始检查这个x数组
四次打印结果其实就是
x[3] x[2] x[1] x[0]的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式