浙江大学ACM1970提交以后出现Segmentation Fault 不知道哪有问题,求帮助!!

baominhao123 2011-11-02 05:23:48
#include<stdio.h>
#include<string.h>
int main()
{
char str1[10000],str2[10000];
while(scanf("%s%s",str1,str2)!=EOF)
{
int len1,len2;
int i,j,t,count;
len1=strlen(str1);
len2=strlen(str2);
t=0;
count=0;
for(i=0;i<len1;i++)
{
for(j=t;j<len2;j++)
{
if(str1[i]==str2[j])
{
t=j+1;
count++;
break;
}

}

}
if(count==len1)
printf("YES\n");
else
printf("NO\n");

}
return 0;
}
...全文
121 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jcback 2011-11-02
  • 打赏
  • 举报
回复
参加过,acm说两个 效率,规范
while(scanf("%s%s",str1,str2)!=EOF)----典型acm的I/O,较坑爹
ArtstyleCoding 2011-11-02
  • 打赏
  • 举报
回复
SF的话一般是数据溢出了 LZ数组多申请些就可以了
小笨同学 2011-11-02
  • 打赏
  • 举报
回复
while(scanf("%s%s",str1,str2)!=EOF) 这句也有错误吧,scanf()返回成功赋值的个数,和EOF比较是什么意思,Debian下Gcc编译通过,运行正常
lida2003 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 baominhao123 的回复:]
char str1[10000],str2[10000];
[/Quote]

哪里有这种做法的,不好的编程习惯,需要改掉。
siasjack 2011-11-02
  • 打赏
  • 举报
回复
我把你的程序复制过去运行了一下,没有发现段错误,就是运行完后不能自动退出!
看运行的情况,你想实现的功能应该就是比较两个字符串吧,相同就打印yes不同打印no
直接用strcmp不就行了,干嘛弄那么麻烦!
koutatu 2011-11-02
  • 打赏
  • 举报
回复
你输入什么的时候有问题,在我这运行没问题啊(环境为ubuntu)
baominhao123 2011-11-02
  • 打赏
  • 举报
回复
我开始定义100提交也是这个样子
luciferisnotsatan 2011-11-02
  • 打赏
  • 举报
回复
输入的数据没超过10000吧
char str1[10000],str2[10000];

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧