Description
给一些单词,判断是否符合标准:
1.至少有一个元音(a,e,o,i,u)
2.不能出现三个及以上的连续元音或辅音
3.不能出现连续两个相同字母,但ee,oo除外
Input
多组用例,每行一个字符串代表查询,以end结束输入
Output
对于每组用例,判断其是否符合标准
Sample Input
a
tv
ptoui
bontres
zoggax
wiinq
eep
houctuh
end
Sample Output
<a>
<script type="math/tex" id="MathJax-Element-1"></script> is acceptable.
<tv>
<script type="math/tex" id="MathJax-Element-2">
</script> is not acceptable.
<ptoui>
<script type="math/tex" id="MathJax-Element-3">
</script> is not acceptable.
<bontres>
<script type="math/tex" id="MathJax-Element-4">
</script> is not acceptable.
<zoggax>
<script type="math/tex" id="MathJax-Element-5">
</script> is not acceptable.
<wiinq>
<script type="math/tex" id="MathJax-Element-6">
</script> is not acceptable.
<eep>
<script type="math/tex" id="MathJax-Element-7">
</script> is acceptable.
<houctuh>
<script type="math/tex" id="MathJax-Element-8">
</script> is acceptable.
Solution
简单字符串处理
Code
#include<stdio.h>
#include<string.h>
int main()
{
int i,flag,res,len,s[1000];
char c[1000];
while(1)
{
flag=1;//标志变量,1为符合标准,0为不符标准,初始值为1
res=0;//记录单词中元音字母数量
gets(c);
if(strcmp(c,"end")==0)//输入结束条件
break;
len=strlen(c);
for(i=0;i<len;i++)
{
if(c[i]=='a'||c[i]=='e'||c[i]=='i'||c[i]=='o'||c[i]=='u')
{
s[i]=1;//标记字母,元音字母为1,辅音字母为0
res++;
}
else
s[i]=0;
}
if(res==0)//没有元音字母,不符标准
flag=0;
for(i=0;i<len-1;i++)//判断除ee,oo外是否有连续两个相同的字母
if(c[i]==c[i+1]&&c[i]!='e'&&c[i]!='o')
flag=0;
for(i=0;i<len-2;i++)//判断是否连续出现3个元音字母或者辅音字母
if(s[i]==s[i+1]&&s[i+1]==s[i+2])
flag=0;
if(flag)//符合标准
printf("<%s> is acceptable.\n",c);
else//不符标准
printf("<%s> is not acceptable.\n",c);
}
}