把getchar方法注释掉再运行试试
望采纳!!!点击回答右侧采纳即可
这段代码有几个错误,导致了 printf 语句没有打印出 count 的值。
首先,在 for 循环的循环变量定义中,你使用的是 1=0 而不是 i=0。这会导致编译器报错,因为 1 是常量,不能被赋值。
其次,在循环条件中,你使用的是 1<32,而不是 i<32。这会导致编译器报错,因为 1 是常量,不能被比较。
正确的代码应该是这样的:
#include <stdio.h>
int main()
{
int num = 0;
int count = 0;
scanf("%d\n", &num);
int i = 0;
for (i = 0; i < 32; i++)
{
if (i == ((num >> i) & 1))
{
count++;
}
}
printf("%d\n", count);
getchar();
return 0;
}
如果你修改了代码并重新编译,printf 语句应该就能够正常打印出 count 的值了。
scanf 里面的 \n 删掉
供参考: