一道模拟题,写的有点麻烦

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<algorithm>
  5. #include<cmath>
  6. using namespace std;
  7. bool fun(char c)
  8. {
  9. if(c=='a'||c=='A'||c=='e'||c=='E'||c=='i'||c=='I'||c=='o'||c=='O'||c=='u'||c=='U'||c=='y'||c=='Y')
  10. return true;
  11. else
  12. return false;
  13. }
  14. int main()
  15. {
  16. int word=0,sen=0,syl=0;
  17. char s[1000];
  18. while(scanf("%s",s)!=EOF)
  19. {
  20. int len=0,y=0;
  21. int i;
  22. for(i=0; s[i]!='\0'; i++)
  23. {
  24. if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
  25. {
  26. len++;
  27. if(fun(s[i]))
  28. {
  29. if(s[i]=='e')
  30. {
  31. if(!((s[i+1]>='a'&&s[i+1]<='z')||(s[i+1]>='A'&&s[i+1]<='Z'))&& s[i-1]=='l')
  32. {
  33. syl++;
  34. y++;
  35. }
  36. else if(!fun(s[i+1])&&((s[i+2]>='a'&&s[i+2]<='z')||(s[i+2]>='A'&&s[i+2]<='Z')))
  37. {
  38. if((s[i+1]>='a'&&s[i+1]<='z')||(s[i+1]>='A'&&s[i+1]<='Z'))
  39. {syl++;
  40. y++;
  41. }
  42. }
  43. else if(!fun(s[i+1])&&((s[i+1]>='a'&&s[i+1]<='z')||(s[i+1]>='A'&&s[i+1]<='Z'))&&(s[i+1]!='s')&&(s[i+1]!='d'))
  44. {syl++;
  45. y++;
  46. }
  47. else if(fun(s[i-1])&&!((s[i+2]>='a'&&s[i+2]<='z')||(s[i+2]>='A'&&s[i+2]<='Z'))&&((s[i+1]=='s')||(s[i+1]=='d')))
  48. {
  49. syl++;y++;
  50. }
  51. else if(fun(s[i-1])&&!((s[i+1]>='a'&&s[i+1]<='z')||(s[i+1]>='A'&&s[i+1]<='Z')))
  52. {
  53. syl++;y++;
  54. }
  55. }
  56. else if(!fun(s[i+1]))
  57. {syl++;y++;
  58. }
  59. }
  60. if(len<=3)
  61. {
  62. if(!((s[i+1]>='a'&&s[i+1]<='z')||(s[i+1]>='A'&&s[i+1]<='Z')))
  63. {
  64. syl++;
  65. syl-=y;
  66. y=0;
  67. continue;
  68. }
  69. }
  70. }
  71. else if(s[i]==',')
  72. {
  73. word++;
  74. y=0;
  75. len=0;
  76. }
  77. else if(s[i]=='.' || s[i]=='?' || s[i]==':' || s[i]==';' || s[i]=='!')
  78. {
  79. word++;
  80. sen++;
  81. y=0;
  82. len=0;
  83. }
  84. }
  85. if((s[i-1]>='a'&&s[i-1]<='z')||(s[i-1]>='A'&&s[i-1]<='Z'))
  86. {
  87. word++;
  88. y=0;
  89. len=0;
  90. }
  91. memset(s,'\0',sizeof(s));
  92.  
  93. }
  94. printf("%.2f\n",206.835-1.015*(double)word/(double)sen-84.6*(double)syl/(double)word);
  95. return 0;
  96. }

poj_3371的更多相关文章

随机推荐

  1. C/C++ Swap without using extra variable

    本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50255379 对于可以线性运算的变量, ...

  2. Windows里正确安装Zookeeper以服务运行

    不多说,直接上干货! 为什么要在Win下来安装Zookeeper呢? 其实玩过大数据的人很清楚,在Linux下我更不说了.在win下,如Disconf .Dubbo等应用. 所以,它的应用是非常广的. ...

  3. mysql-5.7.10-winx64 安装

    安装ZIP中的EXE文件后,找到安装目录中的my-default.ini加入代码 1 2 3 4 5 6 #新设置的 [mysql] default-character-set=utf8 #新设置的 ...

  4. Android Material Design-Getting Started(入门)-(一)

    转载请注明出处:http://blog.csdn.net/bbld_/article/details/40400343 翻译自:http://developer.android.com/trainin ...

  5. 快学Scala习题解答—第三章 数组相关操作

    3 数组相关操作  3.1 编写一段代码.将a设置为一个n个随机整数的数组,要求随机数介于0(包括)和n(不包括)之间  random和yield的使用 import scala.math.rando ...

  6. s3c2440的IIC控制

    在tq2440和mini2440上都连接着EEPROM 它们作用也不过測试I2C总线能否用. 当中在mini2440上EEPROM型号是 AT24C08,在tq2440上这个型号是 AT24C02A. ...

  7. Codeforces 987B. High School: Become Human

    解题思路: 1.题意:判断x^y和y^x谁大谁小. 2.由于x^y和y^x太大了,时间复杂度也不允许,所以做同等变换,比较e^(ylnx)和e^(xlny). 3.即为比较ylnx和xlny的大小. ...

  8. 50个极好的bootstrap框架

    转自:http://sudasuta.com/bootstrap-admin-templates.html  https://www.cnblogs.com/sanhao/p/9184323.html ...

  9. vue.js---methods中一个方法调用另一个方法

    new Vue({ el: '#app', data: { test:111, }, methods: { test1:function(){ alert(this.test) }, test2:fu ...

  10. ListNode的python 实现

    class Node(object): def __init__(self): self.val = None self.next = None class Node_handle(): def __ ...