高级启示者
5581 统计个数(count)
经验值:400 时间限制:1000毫秒
包河区2020年信息学竞赛试题
不许抄袭,一旦发现,直接清空经验!
题目描述 Description
给定一行英语句子,请你统计其中包含的元音字母(包括大写和小写)的个数,并输出。元音字母指: a, e, i, o, u.
输入描述 Input Description
一行,为给定的英语句子。
输出描述 Output Description
一行,一个整数,表示句子中包含的元音字母的个数。
样例输入 Sample Input
Don’t give up and don't give in.
样例输出 Sample Output
9
数据范围及提示 Data Size & Hint
说明:
这句话一共包含9个元音字母。
数据范围:
1个字符<=句子的长度<=3000个字符
错误代码
#include<bits/stdc++.h>
using namespace std;
string a[1000000];
long long cnt,i=1;
int main(){
while(a[i]!="!"||a[i]!="?"||a[i]!="."){
cin>>a[i];
if(a[i]=="a"||a[i]=="A"||a[i]=="e"||a[i]=="E"||a[i]=="i"||a[i]=="I"||a[i]=="o"||a[i]=="O"||a[i]=="u"||a[i]=="U"){
cnt++;
}
i++;
}
cout<<cnt;
return 0;
}
死循环。。。
初级天翼
用for循环
for(int i=0;i<s.size();i++)
里面的判断和你的一样,cnt也要++
注意!
输入时要用getline(cin,s)//以防字符串中间有空格!
望采纳!
潘艺博在2021-07-31 11:44:52追加了内容
getline是一种输入字符串的方法,是以防输入的字符串中有空格或换行
普及一下:当要先输入数字时,要写两遍getline
潘艺博在2021-07-31 11:46:35追加了内容
上个追答加一句:第一遍getline是抵消的,没用
潘艺博在2021-07-31 11:49:28追加了内容
不用定义数组,for循环直接写:
for(int i=0;i<s.size();i++){
if(s[i]==......){//s[i]:字符串里的每个字母
cnt++;
}
}
潘艺博在2021-07-31 11:51:23追加了内容
最后输出即可AC
缔造者之神
核心:
for(int i=0;i<a.size();i++)
{
if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'||a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U') cnt++;
}
cout<<cnt;
a要getline输入,cnt定义为全局变量
高级启示者
@潘艺博
@王文博
#include<bits/stdc++.h>
using namespace std;
string a[100000];
long long cnt;
int main(){
for(int i=0;i<a[i].size();i++){
getline(cin,a[i]);
if(a[i]=="a"||a[i]=="A"||a[i]=="e"||a[i]=="E"||a[i]=="i"||a[i]=="I"||a[i]=="o"||a[i]=="O"||a[i]=="u"||a[i]=="U"){
cnt++;
}
}
cout<<cnt;
return 0;
}
哪错了??
循环不执行
高级启示者
不对啊?????????、
#include<bits/stdc++.h>
using namespace std;
string a;
long long cnt;
int main(){
getline(cin,a);
for(int i=0;i<a.size();i++){
if(a=="a"||a=="A"||a=="e"||a=="E"||a=="i"||a=="I"||a=="o"||a=="O"||a=="u"||a=="U"){
cnt+=1;
}
}
cout<<cnt;
return 0;
}
@王文博
@潘艺博