| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 889 人关注过本帖
标题:谁能为我解释一下这个程序?
取消只看楼主 加入收藏
cccccw
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-30
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
谁能为我解释一下这个程序?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
char sa[N],sb[N],temp[N];
int max(int a,int b)
{
    if(a>b)return a;
    else   return b;
}
int f(int i,int j)
{
    if(i<0||j<0)return 0;
    else if(sa[i]-sb[j]==0)
    {
        return f(i-1,j-1)+1;
    }
    else return max(f(i-1,j),f(i,j-1));
}
int main()
{
    int i,j,tj,r,v;
    scanf("%s%s",&sa,&sb);
    i=strlen(sa);
    j=strlen(sb);
    v=f(i-1,j-1);//v就是所求的最大公共字符串的个数,用f函数来实现
    printf("%d\n",v);
    for(i=0,r=0,tj=0;i<strlen(sa)&&r<v;i++)
    {
        for(j=tj;j<strlen(sb);j++)
            f(sa[i]==sb[j])
        {
            temp[r++]=sa[i];
            break;
        }
        else;
        if(j==strlen(sb));
        else tj=j;
    }
    for(i=0;i<v;i++)printf("%c",temp[i]);
    printf("\n");
    return 0;
}

搜索更多相关主题的帖子: max include return 字符串 
2011-08-30 23:09
cccccw
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-30
收藏
得分:0 
回复 4楼 fourleaves
QQ:1334276883
thank you,
我是初学者,这个程序看不懂
2011-08-31 09:47
cccccw
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-30
收藏
得分:0 
回复 3楼 韩54521风
谢谢,虽然还是不懂
2011-08-31 09:49
cccccw
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-30
收藏
得分:0 
回复 7楼 statics
谢谢
2011-08-31 11:06
cccccw
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-30
收藏
得分:0 
回复 3楼 韩54521风
if(i<0||j<0)return 0;
    else if(sa[i]-sb[j]==0)
    {
        return f(i-1,j-1)+1;
    }
    else return max(f(i-1,j),f(i,j-1));
这段是什么意思?能对我解释一下吗?
2011-08-31 15:44
快速回复:谁能为我解释一下这个程序?
数据加载中...
 
   



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

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