题目描述 采用顺序结构存储串,编写一个程序,要求用户输出串s中出现的第一个最长重复串的下标和长度。 Input abcccceffffffghi Output 7 6 程序代码如下: #define MAXSIZE 256 typedef struct _Array { char data[MAXSIZE]; int length; }Array,*PArray; void CreateStrings(Array & s, const char* t) { int i = strlen(t); int j; for(j=0;j<i;j++) { s.data[j]=t[j]; } s.length=i; } void GetMax(int* a, const char* t) { Array s; CreateStrings(s,t); int i=0; int j=1; int len; a[0]=0; //保存最大长度 a[1]=0; //下标 while(i<s.length) { if(s.data[i]==s.data[j]) { j=j+1; } else { len=j-i; if(len>a[0]) { a[0]=len; a[1]=i; } i=j; j=j+1; } } } int main(int argc, char* argv[]) { int a[2]; char t[MAXSIZE]; printf("t="); scanf("%s",t); GetMax(a,t); printf("Char = %c/n",t[a[1]]); printf("Index= %d/n",a[1]); printf("Max= %d/n",a[0]); return 0; }