문제 설명 :
매우 단지 그러한 단어에 관심이 워드 헬로 유사한 Bob은 하나 이상의 문자를 자음 하나 개 이상의 문자 모음 2 세그먼트, 제 세그먼트 포 부분의 첫 번째 부분으로 나눌 수있다 하나 개 이상의 문자로, 하나 개 이상의 문자 모음 네 번째 단락을 자음. 그렇지 않으면 출력에는, 당신의 출력 예 경우 단어, 같은 단어인지 확인하려면, 단어를 감안할 없습니다. (포함한 A, E, I는, O, U, 총 5는 다른 자음 때문에 모음이다.)
입력 형식 :
단어가 포함 된 줄을 입력 한 단어를 소문자가 포함되어 있습니다.
출력 형식 :
출력 응답, 또는 예, 또는 노.
샘플 입력 : lanqiao
샘플 출력 : 예
샘플 입력 : 세계
샘플 출력 : 없음
아이디어 : 질문의 의미에 따르면, 다시 찾고 자음, 모음, 자음, 네 번째 단락 (모음)의 시작부터 다음 인덱스의 시작 네, 모음 등을 찾아 방문을하는 경우 이후에 시작하기 위해, 사해야한다 다시 자음, 다음 더, 그렇지 않으면 그래.
코드 :
#include<stdio.h>
#include<string.h>
int t;
int fuyin(int t);
int main()
{
int i,j,k,l;//先把该定义的都定义了
int c,d,e;
char a[100];//单词嘛,所以定义char类型的数组
scanf("%s",a);
int x[100]={0};//定义整型数组,把char数组转为int数组处理,毕竟看int舒服一点
for(i=0;i<strlen(a);i++)//利用ASCII码表将a数组元素一个一个得放进x
{
x[i]=(int)a[i];
}
/*
*转换好了是吧,分为四段,
*依次找出每一段开头
*从第四段开头往后找,若出现了辅音,那这单词就no了
*否则就是yes
*/
for(i=1;i<strlen(a);i++)//strlen计算字符串长度,要加相应头文件
{
if(fuyin(x[0])==0||fuyin(x[strlen(a)-1])==1)//如果第一段元或最后一段辅,直接pass
{
printf("no");
break;
}
else
{
if(fuyin(a[i])==0)//上个if判断了第一个字母是辅音,那么下面就找元音
{
c=i;//查找并记录从前往后找到的第一个元音所在下标
for(j=c;j<strlen(a);j++)
{
if(fuyin(a[j])==1)//从元音部分向后找辅音的
{
d=j;//c和d分别记录向后找到的第二段和第三段的开头
for(k=d;k<strlen(a);k++)
{
if(fuyin(a[k])==0)//第三段后找元音,也就是第四段开头
{
e=k;
//如果此时再往后还能找到辅音的话,则错误
for(l=e;l<strlen(a);l++)
{
if(fuyin(a[l])==1)//表示第四段中夹杂辅音
{
printf("no");
break;
}
if(l==strlen(a)-1)//表示已经到达最后一个元素,这在之前已经判断过
{
printf("yes");
break;
}
}
break;
}
}
break;
}
}
}
}
}
return 0;
}
int fuyin(int t)//判断是否为辅音(别在意这通俗易懂的函数名)
{
if(t!=97&&t!=101&&t!=105&&t!=111&&t!=117)//元音字母对应的ASCII码
{
return 1;//辅音返回1
}
else
{
return 0;//元音返回0
}
}
시험 1 :
시험 2 :
끝에 기록 : INT 배열 중간 전사 실제로 완전히 제거되어 있지만, 추가 가동 시간 증가. 나는 문자 그것의 배열을 사용하는 것이 연습을 할 것이다. . .