poj_3371
一道模拟题,写的有点麻烦
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
bool fun(char c)
{
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')
return true;
else
return false;
}
int main()
{
int word=0,sen=0,syl=0;
char s[1000];
while(scanf("%s",s)!=EOF)
{
int len=0,y=0;
int i;
for(i=0; s[i]!='\0'; i++)
{
if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
{
len++;
if(fun(s[i]))
{
if(s[i]=='e')
{
if(!((s[i+1]>='a'&&s[i+1]<='z')||(s[i+1]>='A'&&s[i+1]<='Z'))&& s[i-1]=='l')
{
syl++;
y++;
}
else if(!fun(s[i+1])&&((s[i+2]>='a'&&s[i+2]<='z')||(s[i+2]>='A'&&s[i+2]<='Z')))
{
if((s[i+1]>='a'&&s[i+1]<='z')||(s[i+1]>='A'&&s[i+1]<='Z'))
{syl++;
y++;
}
}
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'))
{syl++;
y++;
}
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')))
{
syl++;y++;
}
else if(fun(s[i-1])&&!((s[i+1]>='a'&&s[i+1]<='z')||(s[i+1]>='A'&&s[i+1]<='Z')))
{
syl++;y++;
}
}
else if(!fun(s[i+1]))
{syl++;y++;
}
}
if(len<=3)
{
if(!((s[i+1]>='a'&&s[i+1]<='z')||(s[i+1]>='A'&&s[i+1]<='Z')))
{
syl++;
syl-=y;
y=0;
continue;
}
}
}
else if(s[i]==',')
{
word++;
y=0;
len=0;
}
else if(s[i]=='.' || s[i]=='?' || s[i]==':' || s[i]==';' || s[i]=='!')
{
word++;
sen++;
y=0;
len=0;
}
}
if((s[i-1]>='a'&&s[i-1]<='z')||(s[i-1]>='A'&&s[i-1]<='Z'))
{
word++;
y=0;
len=0;
}
memset(s,'\0',sizeof(s)); }
printf("%.2f\n",206.835-1.015*(double)word/(double)sen-84.6*(double)syl/(double)word);
return 0;
}
poj_3371的更多相关文章
随机推荐
- POJ——T2352 Stars
http://poj.org/problem?id=2352 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 46592 ...
- 微信企业号开发:微信用户信息和web网页的session的关系
微信企业号的用户是须要验证的,因此能关注企业号的用户事实上就是已经通过验证的用户.但企业应用中打开一个网页,在这个网页中怎样依据微信用户的信息创建web应用中最长使用的session呢?微信 ...
- linux下开发,解决cocos2d-x中编译出现的一个小问题, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
解决cocos2d-x中编译出现的一个小问题 对于cocos2d-x 2.×中编译中,若头文件里引入了#include "cocos-ext.h",在进行C++编译的时候会遇到例如 ...
- javase复习
一.总结封装 封装就是将数据和操作数据的方法绑定起来,通过private修饰数据,这样对数据的访问只能通过定义的操作数据的方法get/set来操作数据. 封装优点:1.由于将数据进行了封装,隐藏了不必 ...
- Android简单实现BroadCastReceiver广播机制
Android中广播的作用是很明显的,当我们收到一条信息,可能我们的应用须要处理一些数据.可能我们开机.我们的应用也须要处理一些数据,这里都用到了广播机制,这里简单的实现了一个自己定义广播.看实例: ...
- ThinkPHP5.0框架开发--第7章 TP5.0数据库操作
ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...
- 用exp命令按用户导出的DMP文件缺少表,某些表是空表
1.用以下这句查找空表并生成执行命令 select 'alter table '||table_name||' allocate extent;' from user_tables where num ...
- jqGrid添加删除功能(不和数据库交互)
jqGrid添加删除功能(不和数据库交互) 一.背景需求 项目中需要在前端页面动态的添加行,删除行,上下移动行等,同时还不和数据库交互.一直在用jqGrid展示表格的我们,从没有深入的研究过它,当然看 ...
- jq弹窗(获取页面宽高,滚轮高度,始终居中)
jq写一个弹窗,效果如上图所示, 点击按钮弹窗弹出,右上角关闭. 弹窗始终显示在页面中间,无论放大缩小窗口,滚轮滚动. 代码如下: html: <br><br><br&g ...
- svn创建分支的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 1. 首先选择你要创建分支的工作目录,如下图: 2.选择要创建分支的路径.注释以及版本,选择HEADrevision ...