首页 > 学院 > 开发设计 > 正文

poj1575

2019-11-10 18:12:12
字体:
来源:转载
供稿:网友

题目大意:

和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;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表