ZOJ 1713 haiku AC代码!

来源:互联网 发布:下载打扑克软件 编辑:程序博客网 时间:2024/05/17 06:09

呵呵!又是一道初学者题!没任何算法就字符的统计而已。

#include "stdio.h"
#include "string.h"

#define END "e/o/i"
#define N 500

int main(void)
{
 char haiku[N] = {0};    //用于存储输入的字符串
 int flag;  //用于标识在遍历第几行
 int i, j;
 int count[10] = {0}; //存储每个haiku每行的元音个数
 int xianglin;

 while (gets(haiku))
 {
  if (strcmp(haiku, END) == 0)
  {
   break;
  }

  flag = 0;
  i = 0;
  xianglin = 0;
  //清空统计数据的数组
  for (j = 0; j < 3; ++j)
  {
   count[j] = 0;
  }

  while (haiku[i] != '/0')
  {
   if (haiku[i] == '/')
   {
    ++flag;
   }

   if (haiku[i] == 'a' || haiku[i] == 'e' || haiku[i] == 'i' ||
    haiku[i] == 'o' || haiku[i] == 'u' || haiku[i] == 'y')
   {
    if (xianglin == 0)
    {
     ++count[flag];
     xianglin = 1;
    }
   }
   else
   {
    xianglin = 0;
   }

   ++i;

  }

  if (count[0] != 5)
  {
   printf("1/n");
  }
  else if (count[1] != 7)
  {
   printf("2/n");
  }
  else if (count[2] != 5)
  {
   printf("3/n");
  }
  else
  {
   printf("Y/n");
  }
 }

 return 0;
}