#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]还能照样输出啊,有点疑惑; 展开
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]还能照样输出啊,有点疑惑; 展开
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时,输出结果如下:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询