#8624: 怎麼一直WA??請高手幫忙


yoron1020 (yoron)

學校 : 國立臺灣海洋大學
編號 : 37913
來源 : [124.218.45.89]
最後登入時間 :
2020-01-27 02:25:44
a034. 二進位制轉換 | From: [120.96.251.250] | 發表日期 : 2014-02-13 14:50

#include<stdio.h>
int main(){
int Ninput, Nbinary = 0, i = 1;
while(scanf("%d", &Ninput) != EOF){
while(Ninput >= 1){
Nbinary += (Ninput % 2) * i;
Ninput /= 2;
i *= 10;
}
printf("%d\n", Nbinary);
Nbinary = 0; 
i = 1;
}
return 0;
}
 
WA (line:1)
答案不正確
您的答案為: -1784890887 正確答案為: 11100011001
 
#9637: Re:怎麼一直WA??請高手幫忙


chiuhans111 (踢到電源線。)

學校 : 臺北市立大安高級工業職業學校
編號 : 47347
來源 : [218.161.3.50]
最後登入時間 :
2016-08-04 15:36:40
a034. 二進位制轉換 | From: [49.215.184.222] | 發表日期 : 2015-02-08 16:48

int 儲存空間不夠大 吧

直接算出是0或1就直接printf吧 不用存起來

 

 
#10602: Re:怎麼一直WA??請高手幫忙


d2513850 (林勇智)

學校 : 崑山科技大學
編號 : 5102
來源 : [114.140.72.110]
最後登入時間 :
2024-10-20 17:35:39
a034. 二進位制轉換 | From: [111.184.249.106] | 發表日期 : 2016-01-02 21:39

#include
int main(){
int Ninput, Nbinary = 0, i = 1;
while(scanf("%d", &Ninput) != EOF){
while(Ninput >= 1){
Nbinary += (Ninput % 2) * i;
Ninput /= 2;
i *= 10;
}
printf("%d\n", Nbinary);
Nbinary = 0; 
i = 1;
}
return 0;
}
 
WA (line:1)
答案不正確
您的答案為: -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;
}

 
ZeroJudge Forum