题意:输入字符窜,从第一个字符开始循环数,数到第1999就删除这个字符,继续数,直到只剩下一个字符
如果剩下的那个字符等于空格就no 等于?就yes 其他就No comments
恶心的一道题,一直以为多测试数据,将空行作为结束标志RE....
#include <stdio.h>
#include <string.h>
const int MAXN=30100;
int main(int argc, char *argv[])
{
char array[MAXN],c1,c2=1;
char mark[30];
int i,cas,len[MAXN],k,s,tmp=1;
cas=0;
while(c1=getchar())
{
if(c1==EOF) break;//这就是我错的最根本地方while(c=getchar()!=eof)相当于while(c=(getchar()!=eof))只会返回1或0
if(c1>=' ') array[cas++]=c1;
}
s=0;
for (i=2;i<=cas;i++)
s=(s+1999)%i;
if(array[s]=='?') printf("Yes\n");
else if (array[s]==' ') printf("No\n");
else printf("No comments\n");
return 0;
}
这道题唯一亮点就是多行字符窜输入的形式