#20474: 請問這是Bug嗎?


j1060221@gm2.fxsh.tyc.edu.tw (林哲安106國信)

學校 : 不指定學校
編號 : 112971
來源 : [101.13.133.125]
最後登入時間 :
2020-01-29 13:58:04

int main() {
string s;
int sum=0,w=0,f=0;
while(getline(cin,s)){
w=s.size();
for(int i=0; i<w; i++){
if(isalpha(s[i])!=0) f=1;
if(isalpha(s[i])==0&&f==1) {sum++; f=0;}
if(i==w-1&&f==1) {sum++; f=0;}
}
cout<<sum<<endl;
sum=0;
}
return 0;

}

_________________________________

int main() {
string s;
int sum=0,w=0,f=0;
while(getline(cin,s)){
for(int i=0; i<s.size(); i++){
if(isalpha(s[i])!=0) f=1;
if(isalpha(s[i])==0&&f==1) {sum++; f=0;}
if(i==w-1&&f==1) {sum++; f=0;}
}
cout<<sum<<endl;
sum=0;
}
return 0;

}

 

第2個是錯的

只有多了1個Var w

為何兩個程式的結果不同?

 

 

 

 

 

#20475: Re:請問這是Bug嗎?


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

學校 : 臺北市私立延平高級中學
編號 : 83268
來源 : [203.72.178.1]
最後登入時間 :
2023-10-30 13:02:50

int main() {
string s;
int sum=0,w=0,f=0;
while(getline(cin,s)){
w=s.size();
for(int i=0; i<w; i++){
if(isalpha(s[i])!=0) f=1;
if(isalpha(s[i])==0&&f==1) {sum++; f=0;}
if(i==w-1&&f==1) {sum++; f=0;}
}
cout<<sum<<endl;
sum=0;
}
return 0;

}

_________________________________

int main() {
string s;
int sum=0,w=0,f=0;
while(getline(cin,s)){
for(int i=0; i<s.size(); i++){
if(isalpha(s[i])!=0) f=1;
if(isalpha(s[i])==0&&f==1) {sum++; f=0;}
if(i==w-1&&f==1) {sum++; f=0;}   <------------------------------------------------------------這個W永遠是0,,而不是s.size()
}
cout<<sum<<endl;
sum=0;
}
return 0;

}

 

第2個是錯的

只有多了1個Var w

為何兩個程式的結果不同?

 

 

 

 

 




#20476: Re:請問這是Bug嗎?


asnewchien@gmail.com (david)

學校 : 南投縣立旭光高級中學
編號 : 68108
來源 : [114.42.176.221]
最後登入時間 :
2025-10-04 22:52:03

 


第二段的 w 一直沒變化,是嗎。

i == w-1 會達到預期的判斷嗎。