C语言,求过程,极其运行结果?

当从键盘输入18并回车后,下面程序的运行结果是【6】
#include "stdio.h"
void main ( )
{ int x , y , i , a [8 ] , j ,u , v ;
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 ] ) ; }

第1个回答  2020-03-09
结果应该是10010
应该就是18的二进制
y%2 是 y的二进制最低位 存入a
y/2是去掉刚才的最低位
比如6的二进制是110
a中的值为011
执行第一遍后u为11 a[0]为0 i为1
后面依些类推本回答被网友采纳
第2个回答  2020-03-16

不错的  程序,应该是 十进制数 转换 为 二进制数

有个变量 定义了,但根本没有使用 ,就是  v