重启c语言— 回文判断

7-1 回文判断 (35分)

回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。

输入格式:
输入待判断的字符序列,按回车键结束,字符序列长度<20。

输出格式:
若字符序列是回文,输出“YES”;否则,输出“NO”。

输入样例:
abdba

输出样例:
YES

思路:只需要让前半部分与后半部分进行比较即可,但是注意要分奇数和偶数个字符,当为奇数时中间的不参与比较。具体代码如下所示:

#include <stdio.h>
#include <string.h>
int main()
{
	char c[50];
	int i=0, n=0, flag = 0;
	gets(c);
	int count=strlen(c);
	n=count-1;
	if (count % 2 == 0)
	{
		for (i = 0; i <= n / 2; i++)
		{
			if (c[i] != c[n - i])
				flag = 1;
		}
	}
	else
	{
		for (i = 0; i <= (n - 1) / 2; i++)
		{
			if (c[i] != c[n - i])
				flag = 1;
		}
	}
	if (flag)
		printf("NO");
	else
		printf("YES");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43723423/article/details/105729085