#17299: AC但有問題


ufve0704 (爬 我爬 我爬爬爬 有排行榜這種東西就是要爬 爬過我上面的那...)

學校 : 臺北市私立延平高級中學
編號 : 83268
來源 : [203.72.178.1]
最後登入時間 :
2023-10-30 13:02:50
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [114.42.219.193] | 發表日期 : 2019-04-04 10:06

#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
char a[500];
int b;
while(cin.getline(a,500)){
b=0;
for(int c=1;c<strlen(a);c++){
if(isalpha(a[c])>=1&&isalpha(a[c-1])==0)
b++;
}
cout<<b+1<<endl;
}
}

我的code為甚麼最後必須要加1才AC?

 
#17377: Re:AC但有問題


qqrainbow (愛蜜莉雅)

學校 : 國立嘉義高級中學
編號 : 83319
來源 : [36.238.5.68]
最後登入時間 :
2023-04-26 23:31:35
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [223.139.24.154] | 發表日期 : 2019-04-06 18:51

試試“ Hello everybody!!”這組測資,你就知道了。

 
#21941: Re:AC但有問題


johnchen40904 (ZWEi)

學校 : 新竹市立建功高級中學
編號 : 125160
來源 : [180.217.15.36]
最後登入時間 :
2021-01-15 08:59:22
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [114.37.153.121] | 發表日期 : 2020-08-01 20:07

#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
char a[500];
int b;
while(cin.getline(a,500)){
b=0;
for(int c=1;c<strlen(a);c++){
if(isalpha(a[c])>=1&&isalpha(a[c-1])==0)
b++;
}
cout<<b+1<<endl;
}
}

我的code為甚麼最後必須要加1才AC?

仔細看這裡:

if(isalpha(a[c])>=1&&isalpha(a[c-1])==0) b++;

b加一的條件是"如果偵測到一個字符是英文字母,而且前一個字符不是英文字母"

兩筆測資的最後都是標點符號,不會導致b+1

建議把掃描的方向反過來,改成:

for(int c=0;c<strlen(a)-1;c++){
if(isalpha(a[c])>=1&&isalpha(a[c+1])==0)
b++;
}

 
ZeroJudge Forum