。帮忙看看,呵呵,我搞得有些头晕,想不出来还有什么反例能让它不输出.
										
					
	
对不礼貌的女生收钱......
我看25楼没什么错误啊.
25楼的这个程序不行吗?
#include<stdio.h>
#include<string.h>
#define M 257
char st[M];
int main()
{
    int l,i,k;
    int mark;
    while(scanf("%s",st)!=EOF)
    {
        l=strlen(st);
        k=0;
        mark=0;
        for(i=l-1;i>=0;i--)
            if(st[i]>='p'&&st[i]<='z')
                k++;
            else if(st[i]=='N'&&k>=1) ;
            else if((st[i]=='I'||st[i]=='C'||st[i]=='D'||st[i]=='E')&&k>=2)
                k--;
            else 
            {
                mark=1;
                break;
            }
        if(k!=1)mark=1;
        if(mark==0)
            printf("YES\n");
        else 
            printf("NO\n");
    }
    return 0;
}

刚看到两位的帖子,抱歉。
工大的,http://acm.hit.edu.cn/ojs/overview.php?from=1000
另:25楼也不行,目前的都不行.我估计是在运行的时候没有输出,导致超时.不知道忽略了什么情况...

由题目可以知道
       s->p~z
       s->Ns
       s->Css | Dss | Ess | Iss   // 因为t也是句子,可用s代替
 从第一个字符判断,遇到 C D E 或 I 调用两次 s  依次对后面的字符判断
不是 C D E I N 的字符,也不在p~z内,即是错误的句子
大体是这样的,程序没时间写了
 int   judge( )
{
    switch(a[i])
   {
     case 'C': judge();
                   judge();
     case '
   
