2009 c语言补考 第二题

#include<stdio.h>
#include<string.h>
char c[334][1000],ttt=0;
int read(char b[],char a[],int a1,int a2)
{
    int i=0;
    for(;a1<=a2;a1++)
        b[i++]=a[a1];
    b[i]='\0';
    return 0;
}
int compare(char b[],char a[],int a1,int a2)
{
    int i=0;
    while(a[a1]==b[i]&&a1<=a2){i++,a1++;}
    if(a1==a2+1)return 1;
    else return 0;
}
int notagain(char b[],int a1)
{
    int i,j=0;
    for(j=0;j<ttt;j++)
        if(compare(b,c[j],0,a1))
        {
            return 0;
        }
    read(c[j],b,0,a1);
    ttt++;
    return 1;


}
int main()
{    int i,j,t,m,n;
    char a[1000],b[1000];
    freopen("In_2.txt","r",stdin);
    freopen("1252957_2_out.txt","w",stdout);
    scanf("%s",a);
    n=strlen(a);
    for(i=1;i<=n;i++)
    {
        ttt=0;
        for(j=0;j<=n-i;j++)
        {
            read(b,a,j,i+j-1);
            m=0;
            for(t=j;t<=n-i;t++)
            {
                if(compare(b,a,t,t+i-1))
                    m++;
            }
            if(m>=3&&notagain(b,i-1))printf("%s   %d\n",b,m);
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/tjsudys/p/2941598.html