所以我的循环遇到了一些问题。我试图将小数转换为它的二进制表示,但循环只迭代一次。有小费吗? (我是C btw的新手)。提前谢谢!
#include <stdio.h>
int main(void)
{
int a,x;
scanf("%i ", &a);
if((a>0))
{
x=a/2;
x=x*2;
if ((x!=a))
{
printf("1");
a=(a-.5)/2;
}
else
{
printf("0");
a=a/2;
}
}
return 0;
}
答案 0 :(得分:4)
问题是你没有循环。 if
检查一次条件并执行某些操作。如果使用while
,则会持续运行,直到条件为假。所以你需要改变这个:
if((a>0)) {
到此
while(a > 0) {
另外,请以scanf
格式删除空格:
scanf("%i", &a);
否则按Enter键时无法完成。