题目大意:
检测一个单词是否同时符合以下3个条件:
1、必须至少包含一个元音字母
2、不能包含三个连续的元音字母或三个连续的辅音字母
3、不能包含字母连续出现两次,除了‘ee’或‘oo’
解题思路:
无
代码如下:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
char pass[25];
int is_vow(char c)
{
if((c=='a')||(c=='e')||(c=='i')||(c=='o')||(c=='u'))
return 1;
else
return 0;
}
int equal(char a,char b)
{
if((a==b)&&(a!='e')&&(a!='o'))
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int length;
int i;
int count_vow;
int flag;
while(scanf("%s",pass)!=EOF)
{
flag=0;
length=strlen(pass);
if(length==3)
{
if(pass[0]=='e'&&pass[1]=='n'&&pass[2]=='d')
{
break;
}
}
count_vow=0;
if(length>=3)
{
for(i=0;i<length-2;i++)
{
if(is_vow(pass[i])&&is_vow(pass[i+1])&&is_vow(pass[i+2]))
{
flag=1;
break;
}
if((!is_vow(pass[i]))&&(!is_vow(pass[i+1]))&&(!is_vow(pass[i+2])))
{
flag=1;
break;
}
}
}
if(length>=2)
{
for(i=0;i<length-1;i++)
{
if(equal(pass[i],pass[i+1]))
{
flag=1;
break;
}
}
}
for(i=0;i<length;i++)
{
if(is_vow(pass[i]))
{
count_vow++;
}
}
if(count_vow==0)
{
flag=1;
}
if(flag)
{
printf("<%s> is not acceptable.\n",pass);
}
else
{
printf("<%s> is acceptable.\n",pass);
}
}
return 0;
}