下面是我的代码:
#include <stdio.h>
#include <string.h>
char s1[1000000];
char s3[1000000][25];
int main()
{
int i,j,s,t,k1,k2,len;
int l;
int x1,x2;
int l1,l2,x,flag,s6;
int max,key;
char s2[105];
char s4[]={"BULLSHIT"};
i=0;
while(gets(s2))
{
if(i==0)
{
strcpy(s1,s2);
i=1;
}else
{
len=strlen(s1);
s1[len]=' ';
s1[len+1]='\0';
strcat(s1,s2);
}
}
l=strlen(s1);
k1=0;
k2=0;
s=0;
x1=x2=0;
for(i=0;i<=l-1;i++)
{
if((s1[i]>='a'&&s1[i]<='z'||s1[i]>='A'&&s1[i]<='Z')&&k1==0)
{
k1=1;
k2=0;
}else if(k1==1&&k2==0)
{
k2=1;
for(j=i-1;j<=l-1;j++)
{
if(!(s1[j]>='a'&&s1[j]<='z'||s1[j]>='A'&&s1[j]<='Z'))
{
break;
}else
{
s3[x1][x2]=s1[j];
x2+=1;
}
}
s3[x1][x2]='\0';
x1+=1;
x2=0;
}
if(k1==1&&!(s1[i]>='a'&&s1[i]<='z'||s1[i]>='A'&&s1[i]<='Z'))
{
k1=0;
}
}
s=0;
max=0;key=0;flag=-1;s6=0;
for(i=0;i<=x1-1;i++)
{
if(strcmp(s3[i],s4)==0)
{
flag=i;
key=1;
s6+=1;
}else
{
l2=strlen(s3[i]);
for(j=flag+1;j<=i-1;j++)
{
l1=strlen(s3[j]);
if(l1==l2)
{
for(x=0;x<=l1-1;x++)
{
if(s3[i][x]>='a'&&s3[i][x]<='z')
{
if(s3[i][x]==s3[j][x]||s3[i][x]-32==s3[j][x])
{
;
}else
{
break;
}
}else if(s3[i][x]>='A'&&s3[i][x]<='Z')
{
if(s3[i][x]==s3[j][x]||s3[i][x]+32==s3[j][x])
{
;
}else
{
break;
}
}
}
if(x==l1)
{
break;
}
}
}
if(j==i)
{
s+=1;
}
}
if(key==1)
{
max+=s;
key=0;
s=0;
}
}
if(max>s6)
{
t=s6;
}else
{
t=max;
}
for(i=t;i>=1;i--)
{
if(max%i==0&&s6%i==0)
{
max=max/i;
s6=s6/i;
break;
}
}
printf("%d / %d\n",max,s6);
return 0;
}