#15720: 請問是否不同環境問題?


phjk (有時沒有)

學校 : 不指定學校
編號 : 82536
來源 : [61.62.214.122]
最後登入時間 :
2019-03-07 21:23:44
c356. Justin 愛加密 | From: [61.62.214.122] | 發表日期 : 2018-10-22 21:54

我在 linux 中使用。程式碼:

 

int main()
{
int N=0;
int ch=0;
int i=0,j=0;
while( ( ch=getchar() ) != EOF ) {
N=(int)ch - 48 ;

getchar() ;

j=0;
for( i=1; i<= N*N; i++) {
ch= (int) (getchar() );

if( i%N == (1+j) ) {
putchar(ch);
}

if( i%N == (N-1) ) {
j++;
}
if(i==N*N) {
putchar(ch);
}
}
putchar('\n');
ch=getchar() ;
}

return 0;
}

 

data.in 內容:

5
HDNOWEEIOWWELWDDWWLOPODWO

 

執行 cat data.1 | bin/Debug/0-c 是正確的。

但是丟入測試,卻是錯誤,如下:

 

WA (line:1)
您的答案為: EEWW
正確答案為: HELLO

 

是執行環境問題嗎?

 
#15724: Re:請問是否不同環境問題?


OwO310659 (OwO)

學校 : 新北市立板橋高級中學
編號 : 58647
來源 : [118.150.111.60]
最後登入時間 :
2024-04-25 01:16:40
c356. Justin 愛加密 | From: [106.105.27.148] | 發表日期 : 2018-10-22 23:11

目前大致看到以下3個問題:

1. 沒有 #include<stdio.h> 就使用 getchar()/putchar() 並不是標準的寫法,
  所以並不是用於所有的編譯環境,
  雖然在 ZJ 的 C 可以編譯成功就是了... = ="

2. 關於測試的問題,
  ZJ 在「測試執行」的換行字元似乎是windows環境下的換行字元, (強調似乎是因為我也不太確定)
  由於windows的換行字元是 '\n\r' ,
  所以在「測試執行」若要使用 getchar() 讀換行要輸入2次, (雖然不太確定是否就是'\n\r'但其確實佔了2個字元)
  但是在「送出解答」並沒有這個問題~
  所以是有可能在「測試執行」WA或RE但「送出解答」卻AC的~

3. 在輸入一個正整數 N 的部分你使用的是 N=(int)ch - 48 ;
  這個方式在遇到 N 是2位數以上的數字(EX: 123)時只會讀取到最高位數(以123的例子來說就是1),
  並且由於剩餘的位數(以123的例子來說就是23)尚未被輸入,
  所以在接下來的輸入會讀取到剩餘的位數導致並非預想的輸入~


以上希望有幫助到你~ OwO

 
#15729: Re:請問是否不同環境問題?


phjk (有時沒有)

學校 : 不指定學校
編號 : 82536
來源 : [61.62.214.122]
最後登入時間 :
2019-03-07 21:23:44
c356. Justin 愛加密 | From: [61.62.214.122] | 發表日期 : 2018-10-23 21:12

目前大致看到以下3個問題:

1. 沒有 #include 就使用 getchar()/putchar() 並不是標準的寫法,
  所以並不是用於所有的編譯環境,
  雖然在 ZJ 的 C 可以編譯成功就是了... = ="

2. 關於測試的問題,
  ZJ 在「測試執行」的換行字元似乎是windows環境下的換行字元, (強調似乎是因為我也不太確定)
  由於windows的換行字元是 '\n\r' ,
  所以在「測試執行」若要使用 getchar() 讀換行要輸入2次, (雖然不太確定是否就是'\n\r'但其確實佔了2個字元)
  但是在「送出解答」並沒有這個問題~
  所以是有可能在「測試執行」WA或RE但「送出解答」卻AC的~

3. 在輸入一個正整數 N 的部分你使用的是 N=(int)ch - 48 ;
  這個方式在遇到 N 是2位數以上的數字(EX: 123)時只會讀取到最高位數(以123的例子來說就是1),
  並且由於剩餘的位數(以123的例子來說就是23)尚未被輸入,
  所以在接下來的輸入會讀取到剩餘的位數導致並非預想的輸入~


以上希望有幫助到你~ OwO

感謝您!


 
ZeroJudge Forum