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

#include"stdio.h"voidmain(){inta,i=0;intf[10000000];scanf("%d",&a);if(a>=0&&a<=255){d... #include"stdio.h"
void main()
{
int a,i=0;int f[10000000];
scanf("%d",&a);
if(a>=0&&a<=255)
{do f[i]=a%2;
a=a/2;
i++;
while(a>0)
j=i-1;
for(i=j;i>=0;i--)

printf("%d",f[i])}
else printf("worng")
}
为什么a超过255,f[i]还能照样输出啊,有点疑惑;
展开
 我来答
东方白紫易
2011-05-07 · TA获得超过868个赞
知道小有建树答主
回答量:119
采纳率:100%
帮助的人:44.2万
展开全部

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

第二,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时,输出结果如下:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式