| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 726 人关注过本帖
标题:改正此算法,或另外给点算法思想!
只看楼主 加入收藏
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 

现在在研究KMP,资料上说的不详细。哎,看的累。


深山苦学C语言,终年不见外面世界。
2007-06-21 14:09
wulai111222
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-12-14
收藏
得分:0 

int lookbaohan(const char s1[],const char s2[])
{
int i,j,m,n;
i=strlen(s1);//源长
j=strlen(s2);//对象长
for(m=0;m<(i-j);m++)
{
if(s1[0]==s2[m])
{
for(n=1;n<j;n++)
{
if(s1[n]!=s2[m+n])
break;
else continue;
}
break;
}
}
printf("%d",m);
getchar();
exit(1);
}

2007-06-21 16:09
wulai111222
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-12-14
收藏
得分:0 
刚才把源跟对象弄混了应该是这样
int lookbaohan(const char s1[],const char s2[])
{
int i,j,m,n;
i=strlen(s1);//源长
j=strlen(s2);//对象长
for(m=0;m<(i-j);m++)
{
if(s2[0]==s1[m])
{
for(n=1;n<j;n++)
{
if(s2[n]!=s1[m+n])
break;
else continue;
}
break;
}
}
printf("%d",m);
getchar();
exit(1);
}
2007-06-21 17:21
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 
楼上的程序也经不起验证,还是有很多BUG,还是自己努力改正.

深山苦学C语言,终年不见外面世界。
2007-06-21 23:14
wulai111222
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-12-14
收藏
得分:0 
#include<stdio.h>
#include<string.h>
main()
{
char s1[12],s2[12];
char aa='N';
int i,j,m,n=1;
printf("please enter the one string:\n");
gets(s1);
getchar();
printf("please enter the two string:\n");
gets(s2);
getchar();
i=strlen(s1);
j=strlen(s2);
for(m=0;m<=(i-j);m++)
{
if(s2[0]==s1[m])
{
for(;n<j;n++)
{
if(s2[n]==s1[m+n])
continue;
else break;
}
if(n==j)
{
aa='Y';
break;
}
else continue;
}
}
printf("%d,%d,%d,%d,%c",m,n,j,i,aa);
getchar();
exit(1);
}
这个是完整的我跑了下没什么你说的BUG 有的话请指出
2007-06-22 11:39
快速回复:改正此算法,或另外给点算法思想!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030508 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved