#11293: 一直 NA ?!?!


kuenway (kuenway)

學校 : 國立清華大學
編號 : 58977
來源 : [140.114.209.113]
最後登入時間 :
2016-10-08 21:03:31
b838. 104北二2.括號問題 -- 104北二區桃竹苗基資訊學科能力複賽 | From: [113.61.141.95] | 發表日期 : 2016-08-20 16:30

#include <stdio.h>

int main(void) {
int num , le = 0 , ri = 0;
scanf("%d",&num);
char s[20];

for(int i = 0 ; i < num ; i ++){
while(scanf("%s",s)!= EOF){
for(int j = 0 ; j < 20 ; j ++){
if(s[j] == '(')
le ++;
if(s[j] == ')')
ri ++;
if(ri>le)
break;
}
if(le == ri)
printf("%d\n",ri);
else
printf("0\n");
}
}
return 0;
}

 
#11307: Re:一直 NA ?!?!


rsj00008 (二信008)

學校 : 基隆市私立二信高級中學
編號 : 49436
來源 : [36.227.73.69]
最後登入時間 :
2024-05-02 21:18:16
b838. 104北二2.括號問題 -- 104北二區桃竹苗基資訊學科能力複賽 | From: [203.77.47.193] | 發表日期 : 2016-08-26 21:52

程式碼錯誤說明:
 

 

#include <stdio.h>

// 使用 strlen需 引入 string.h

int main(void) {

int num , le = 0 , ri = 0;  // << **** le=0、ri=0需在 for迴圈內 都設定一次

scanf("%d",&num);

char s[20];  // <<***** 有20個符號需宣告 20+1 個字元空間

 

for(int i = 0 ; i < num ; i ++){

while(scanf("%s",s)!= EOF){  // << **** 已有上一行的for i 此行不可再用while,而且本題非讀至檔尾, 拿掉while,只要scanf

for(int j = 0 ; j < 20 ; j ++){ // << **** j<20的  20應改為 s的長度 : 用strlen

  //  << **** le=0、ri=0需在 for迴圈內 都設定一次

if(s[j] == '(')

le ++;

if(s[j] == ')')

ri ++;

if(ri>le)

break;

}

if(le == ri)

printf("%d\n",ri);

else

printf("0\n");

}

}

return 0;

}

 

 
 
ZeroJudge Forum