#8791: WA 輸出了不明的資料


qazwedcx5t (FAr)

School : 崑山科技大學
ID : 4266
IP address : [111.254.77.101]
Last Login :
2020-02-11 02:28:21
d681. BinaryCount -- 葆葆 | From: [114.47.182.92] | Post Date : 2014-05-03 00:04

C Code:

 #include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main(int argc, char *argv[]) {

char input[1000];

while(gets(input)!=0){

int len = strlen(input);

int i=0,j;

char tmp[5];

int fc=0;

while(i<len){

if(input[i]=='0'||input[i]=='1'){

for(j=i;j<i+5;j++)printf("%c",input[j]);

if(fc==0)

for(j=i;j<i+5;j++)tmp[j-i]=input[j];

else if(fc==1)

for(j=i;j<i+5;j++)

if(tmp[j-i]=='1'&&input[j]=='1')tmp[j-i]='1';

else tmp[j-i]='0';

else if(fc==2)

for(j=i;j<i+5;j++)

if((tmp[j-i]=='1')||(input[j]=='1'))tmp[j-i]='1';

else tmp[j-i]='0';

i+=6;

}

else if(input[i]=='a'){

printf("&&");

fc = 1;

i+=4;

}

else if(input[i]=='o'){

printf("||");

fc = 2;

i+=3;

}

else

break;

}

printf(" = %s\n",tmp);

}

return 0;

 第 1 測資點(0%): WA (line:1)

答案不正確
您的答案為: 00011||01100 = 01111�e\�� ...略 正確答案為: 00011||01100 = 01111 
第 2 測資點(0%): WA (line:1)
答案不正確
您的答案為: 10001||10000&&11101&&01001 = 00001�5k�� ...略 正確答案為: 10001||10000&&11101&&01001 = 00001 
第 3 測資點(0%): WA (line:1)
答案不正確
您的答案為: 01110&&01110||00100||00111 = 01111�j�� ...略 正確答案為: 01110&&01110||00100||00111 = 01111 
第 4 測資點(0%): WA (line:1)
答案不正確
您的答案為: 00100||01110||00010&&10100&&11110&&11111||01100 = 01100��c�� ...略 正確答案為: 00100||01110||00010&&10100&&11110&&11111||01100 = 01100 

 

答案結尾輸出了不明的資料,覺得是輸出了不在規劃的記憶體內容,

可是自己的測試完全沒有這個狀況,試了幾個可能想到的問題都失敗,

因此想來請教下有沒有人知道這是如何發生的? 

 
#8793: Re:WA 輸出了不明的資料


qazwedcx5t (FAr)

School : 崑山科技大學
ID : 4266
IP address : [111.254.77.101]
Last Login :
2020-02-11 02:28:21
d681. BinaryCount -- 葆葆 | From: [114.47.182.92] | Post Date : 2014-05-03 21:11

 

已解決了,去練其他題目才想到字元陣列做字串用時要以'\0'來做字串結尾

 

 
ZeroJudge Forum