33,311
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<string.h>
int decrypt(char *s1,char *s2)
{
int i,j,n=0,p=0,flag=0;char s3[1000];
for(i=0;s1[i];i++)
{
for(j=p;s2[j];j++)
{
if(s1[i]==s2[j])
{
s3[n]=s1[i];
n++;
p=j+1;
if(strcmp(s1,s3)==0||n==strlen(s1))
{
flag=1;return flag;
}
else break;
}
}
if(n==0) return flag;
}
return flag;
}
int main()
{
char s1[1000]={'\0'},s2[1000]={'\0'},r=0;
while(scanf("%s %s",s1,s2)!=EOF) /*这里*/
{
r=decrypt(s1,s2);
if(r) printf("Yes\n");
else printf("No\n");
}
return 0;
}
while(scanf("%999s%999s",s1,s2)!=EOF)
输入比如
abc def
123 456
然后
Linux:Ctrl+D
Windows:Enter,Ctrl+Z,Enter[/quote]
谢谢!!!!请问为啥这样??原题是输入EOF结束,不过我没太懂,一会儿把题贴上来,是道acm题 while(scanf("%999s%999s",s1,s2)!=2)
while(scanf("%999s%999s",s1,s2)!=EOF)
输入比如
abc def
123 456
然后
Linux:Ctrl+D
Windows:Enter,Ctrl+Z,Enterwhile(scanf("%999s%999s",s1,s2)!=2)
while(scanf("%999s%999s",s1,s2)!=2)