您的答案為: -1784890887 正確答案為: 11100011001
int 儲存空間不夠大 吧
直接算出是0或1就直接printf吧 不用存起來
您的答案為: -1784890887 正確答案為: 11100011001
改成這樣:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/*有strcat(x,y)函數*/
#include<math.h>
int main(void){
int x,a;
char y[1024];//當成字串處理,i=0為最低有效位,能處裡2^1024以下的數
for(x=0;x<1024;x++){//先清空y陣列
y[x]=0;
}
while(scanf("%d",&x)!=EOF){
while(x!=0){//從最低有效位開始,做到x=0
if(x%2==0){//x mod 2=0時存0
strcat(y,"0");
}else{
strcat(y,"1");
}
x/=2;
}
for(a=0;a<strlen(y);a++){//從最高有效位開始
printf("%c",y[strlen(y)-a-1]);
}
printf("\n");
for(a=0;a<1024;a++){//清空y陣列
y[a]=0;
}
}
return 0;
}