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