江山 2021-02-15 15:20 采纳率: 100%
浏览 141
已采纳

输入字符串后 按回车没反应?

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define MAXN 5000 + 10
char buf[MAXN], s[MAXN];
int p[MAXN];
int main() {

	int n, m = 0, max = 0, x, y;
	int i, j;
	fgets(buf, sizeof(s), stdin);
	n = strlen(buf);
	
	for ( i = 0; i < n; i++)
	{
		if (isalpha(buf[i]))
		{
			p[m] = i;
			s[m++] = toupper(buf[i]);
		}
		
		for (i = 0; i < m; i++)
		{
			
			for (j = 0; i - j >= 0 && i + j < m; j++)
			{
				if (s[i - j] != s[i + j]) break;
				if (j * 2 + 1 > max)
				{
					max = j * 2 + 1;
					x = p[i - j];
					y = p[i + j];
                    
				}
				
			}
			for (j = 0; i - j >= 0 && i - j + 1 < m; j++)
			{
				
				if (s[i - j] != s[i - j + 1]) break;
                
				if (j * 2 + 2 > max)
				{
					max = j * 2 + 2;
					x = p[i - j];
					y = p[i + j + 1];
					
				}
				
			}

		}
		
	}
	
        for (i = x; i <= y; i++)
			printf("%c", buf[i]);
		printf("\n");
	return 0;
}

 

  • 写回答

2条回答 默认 最新

  • 书山客 2021-02-15 15:35
    关注

    一直在for循环里边转圈圈了,你在内外两个for循环都用i作为判断条件了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?