- #include <stdio.h>
- #include <string.h>
- //#include <cstdlib>
- int main(void) {
- char n[80];
- int i,k,j,x;
- int tc0[26]={0};
- int tc[26]={0};
- int tn[26]={0};
- int c1[26]={0};
- int c2[26]={0};
- int n2[26]={0};
- int b[26]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
- printf("請輸入字串");
- scanf("%s", n);
-
- for ( i = 0; i < strlen(n); i++) {
- // printf("b[%d]=%d\n",i,b[i]);
- if((b[(int)n[i]-97])==1){
- b[(int)n[i]-97]=0;
- c1[i]=(int)n[i];
- //printf("目前:tc0[%d]=%d\n",(int)n[i]-97,tc0[(int)n[i]-97]);
- for( k=i;k<strlen(n);k++)
- {
- if((int)n[i]==(int)n[k])
- {
-
- tc[(int)n[k+1]-97]=(int)n[k+1];
- tn[(int)n[k+1]-97]++;
-
-
- }
- }
- for( j=0;j<26;j++)
- {
- if(n2[i]<tn[j])
- {
-
- n2[i]=tn[j];
- c2[i]=tc[j];
- }
- }
- for( x=0;x<26;x++)
- {
- tc[x]=0;
- tn[x]=0;
- }
- }
- else
- continue;
- }
- int sum=0;
- for( i=0;i<26;i++)
- {
- if(b[i]==1)
- sum+=1;
- }
- int maxc1=0,maxc2=0,maxn=0,get=1,index=0;
- for( i=0;i<26;i++)
- {
- // printf("i:%d,%d\n",i,c1[i]);
- if(n2[i]>0 && c1[i]>0)
- if(n2[i]>maxn)
- {
- maxc1=c1[i];
- maxc2=c2[i];
- maxn=n2[i];
- }
-
- }
-
- for( i=0;i<26;i++)
- {
- if(maxn==n2[i])
- {
- get++;
-
- }
- //printf("c[%d]=%d有\n",i,c1[i]);
- }
- if(get>1)
- {
- int nc=123;
- for( i=0;i<26;i++)
- {
- if(c1[i]<=nc && n2[i]==maxn)
- {
- maxc1=c1[i];
- maxc2=c2[i];
- maxn=n2[i];
- nc=c1[i];
- }
-
- }
-
- }
- /* else*/
- printf("%c->%c,Frequency:%d\n",maxc1,maxc2,maxn);
- system("pause");
- return 0;
- }
複製代碼 |