Haiku是一种诗的形式,三行,按要求每行元音数目为5,7,5,每行用/隔开,都符合要求输出 Y,否则输出第一个不符合要求的,水题。
值得一提的是我用的一句很省事。
scanf("%[^'/']",a);
把不是斜杠的放到a中,不用再麻烦半天写一堆条件了。
本来想找关于“%[]”的知识,百度google都没收录这个,不想再在输入输出网页中找了。
还有%[^/n]表示把换行前的都放入字符串中。。
#include<stdio.h> #include<string.h> int iss(char c)//是否是元音 { switch (c) { case 'a':return 1; case 'e':return 1; case 'i':return 1; case 'o':return 1; case 'u':return 1; case 'y':return 1; default :return 0; } } int isss(char *a,int n)//某句话是否符合要求 { int i,count = 0; for(i = 0;a[i]!='/0';) if(iss(a[i]) ) { while(iss(a[i])) //排除连续的元音 i++; count++; } else i++; if(count == n) return 1; else return 0; } int main(void) { char a[210],b[210],c[210]; while(scanf("%[^'/']",a) != EOF) { getchar(); scanf("%[^'/']",b);//省了不少劲 getchar(); gets(c); if( strcmp(a,"e") == 0 && strcmp(b,"o") == 0 && strcmp(c,"i") == 0) break; if( !isss(a,5) ) printf("1/n"); else if( !isss(b,7) ) printf("2/n"); else if( !isss(c,5) ) printf("3/n"); else printf("Y/n"); } return 0; }