
?其实这题的思路很好想 就是 输入一个串后 然后依次检索每一个字符 然后在后面找出相同的一个字符,然后以这两个作为起点 ,分别前后的比较,如果相等 ,就加一,这样就可以找到最大的串,假如要求输出这个字符 ,也很简单,只需要开一个字符数组即可,即可以一个一个的赋值,也可以用strncpy赋给新数组,具体的实现如果不理解可以评论出来。
写的可能很差,希望大家可以提出宝贵的建议,不胜感激。
金陵科技学院? 软件工程 11/24
#include<stdio.h>
#include <math.h>
int main ()
{
char c[1002];
gets(c);
int max=0;
int i,j;
int t,flag=0;
for (i=0;c[i]!='\0';i++)//一个一个字母的检索
{
t=0;
for (j=i;c[j]!='\0';j++)//从当前的字母开始向后检索
{
if (c[i]==c[j])
{
while (1)//死循环
{
if (c[i+t]==c[j-t])
{
t++;
}
else break;//结束
if(j-t<0) break;//保证不能超出范围 如超出 出去
}
if (t>max) max=t;//记录最大值
}
}
}
printf ("%d",max);
return 0;
}
|