我的简单程序无法将7转换为111(当前代码会给出101)。我知道myArray []
和最后一个printf()
可以改进,但我们可以在下次讨论。
int main() {
int myDecimal, quo, rem;
int i = 0; //counter
int myArray[3];
printf("Enter valid decimal number: ");
scanf("%d", &myDecimal);
while(quo != 1){
quo = myDecimal / 2;
rem = myDecimal % 2;
myArray[i] = rem;
myDecimal = quo;
i++;
} myArray[i] = quo;
printf("\nBinary: %d %d %d", myArray[i + 2], myArray[i + 1], myArray[i] );
return 0;
}
i
的值是多少? - Some programmer dudei + 1
(和i + 2
)不就会越界了吗? - Some programmer dudeprintf
打印时不要使用前导换行符。stdout
文件流(printf
写入的内容)默认情况下是“行缓冲”的。这意味着只有在字符串中出现换行符时,输出才会实际被写入。如果你在开头加上换行符,你将打印出之前的输出,而当前printf
调用的输出将不会被打印。养成在printf
调用中始终具有尾随换行符的习惯。 - Some programmer dude