这个题目怎么总是通不过啊,求请教,明明运行答案是对的
Problem I:单数变复数
Time Limit:1000MS Memory Limit:65536K
Total Submit:6 Accepted:0
Description
英文单词,我们可以按照英语语法规则把单数变成复数。规则如下:
(1)以辅音字母y结尾,则加es
(2)以s,x,ch,sh结尾,则加es
(3)以元音o结尾,则加es
(4)其他情况加上s
Input
第一行输入一个数字n,表示有n组测试数据
后面跟n行,每行是一个英语单词
Output
对于每组测试数据,输出一行,要求将输入的英文单词变成复数
Sample Input
2
book
fish
Sample Output
books
fishes
#include<stdio.h> #include<string.h> int main() { int n,i,q; char s[10000]; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%s",&s); q=strlen(s); if(s[q-1]=='y')printf("%s\n",strcat(s,"es")); else if(s[q-1]=='s')printf("%s\n",strcat(s,"es")); else if(s[q-1]=='x')printf("%s\n",strcat(s,"es")); else if(s[q-2]=='c'&&s[q-1]=='h')printf("%s\n",strcat(s,"es")); else if(s[q-2]=='s'&&s[q-1]=='h')printf("%s\n",strcat(s,"es")); else if(s[q-1]=='o')printf("%s\n",strcat(s,"es")); else if (s[q-1]!='y'&&s[q-1]!='s'&&s[q-1]!='x'&&s[q-1]!='o'&&(s[q-2]!='c'&&s[q-1]!='h')&&(s[q-2]!='s'&&s[q-1]!='h')) printf("%s\n",strcat(s,"s")); } } return 0; }