C语言 printf在循环中似乎没有打印任何结果



我是一个初学者,我正在尝试编写一个将十进制转换为二进制数的程序。据我所知,将数字存入数组的过程似乎很顺利,但我不能让它们打印出来。(请注意,使用此方法转换时,数字首先是向后写的,因此您必须在某个点再次反转它。)

#include <stdio.h>
int main () {
int num;
int quo;
int count;
int count2;
char aux;
int pow2 = 1;
int minus = 1;

printf("Inform the positive whole number to be converted into binary: ");
scanf("%d", &num);
for (count = 0; num > pow2; ++count){ 
pow2 = pow2 * 2;
}
char binary[count];
printf("%d in binary is: ", num);
for(count2 = 0; count2 < count; count2++) {
binary[count2] = num % 2;
quo = num / 2;
num = quo;
}
while (minus <= count) {
aux = binary[(count - minus)];
putchar(aux);
minus++;
}
putchar('n');
}

binary的元素为数字01putchar()的参数是一个字符代码,所以您打印的是代码01,而不是那些字符。可以将09之间的数字与0的代码相加,转换为对应的数字。

while (minus <= count) {
aux = binary[(count - minus)];
putchar('0' + aux);
minus++;
}

或者你可以使用printf():

while (minus <= count) {
aux = binary[(count - minus)];
printf("%d", aux);
minus++;
}

最新更新