char cha_duo(char *a)/*查找重復最多的字符*/
{
int i,j,count,max=0;
char c;
for(i=0;a[i]!='\0';++i)
{
count=0;
for(j=0;a[j]!='\0';++j)
{
if(a[i]==a[j])
count++;
}
if(count>max)
{
max=count;
c=a[i];
}
}
return c;
}
chang_cuan(char *a,char c)/*已重復最多的字符為標記點(diǎn),看看這個(gè)最多重復的字符串有多長(cháng)*/
{
int min=100,count,i,j;
for(i=0;a[i]!='\0';++i)
{
count=0;
if(a[i]==c)/*到了最多重復標記點(diǎn)*/
for(j=i+1;a[j]!='\0';++j)
{
int k=0;
k=i;
if(a[k]==a[j])/*只在與最多重復點(diǎn)相同時(shí),才比較*/
{
while(a[k]==a[j])
{
count++;/*記下多少個(gè)相等*/
k++;
j++;
}
if(count<min)/*因為是求重復最多的,因此要取短的*/
min=count;
}
}
}
return min;/*返回重復最多的長(cháng)度*/
}
void main()
{
char a[100],c;
int i,j,k;
printf("請輸入一個(gè)字符串\n");
gets(a);
c=cha_duo(a);
k=chang_cuan(a,c);
printf("出現最多的字符串是\n");
for(i=0;a[i]!='\0';++i)
if(a[i]==c)
{
j=i;
while(j<=k)/*輸出結果*/
{
putchar(a[j]);
j++;
}
break;
}
putchar('\n');
}

聯(lián)系客服