#include"stdio.h" void main() { int a,i=0;int f[10000000]; scanf("%d",&a); if(a>=0&&a<=255) {do

2025-06-28 02:46:41
推荐回答(1个)
回答1:

第一,数组定义太大。数组无法定义那么大的,系统不会报错,但不会工作。

第二,do--while循环不是这样用吧?书上貌似不是这样定义的。

第三,如果你把这些都改了,或许就可以了。

改后的程序:

#include"stdio.h"

void main()

{

int a,i=0;int f[100];

    scanf("%d",&a);

if(a>=0&&a<=255)

{

        do {

    f[i]=a%2;

                    a=a/2;

     i++;

}while(a>0);

int j=i-1;

for(i=j;i>=0;i--)

                       printf("%d",f[i]);

}

else printf("worng");

}

当大于255时,输出结果如下: