欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言-回文数

程序员文章站 2022-06-26 14:37:26
...

回文数

回文数是一种正着读反着读都一样的数,比如12321,asdsa

基本程序思路:
建立两个指针指向字符串,使一个字符指向该字符串结束标记前一个字符,另一个指针指向开头,然后判断前后两个指针的值是否相等,相等就比第二个第三个等等,不相等就直接break,因为它不是回文数。

程序代码如下:

#include <stdio.h>
int main()
{
	char* a = "11wgdg";
	char* p, * t;     //定义两个指针并都指向字符串
	int n = 1;  //默认字符串是回文数
	p = t = a;
	while (*p)  //将指针p移到字符串最后一位
		p++;
	p--;
	while (p >= t)  //p<t时就比完了
	{
		if (*p == *t)  //如果前面的字符与后面的字符相等就移动两个指针
		{
			p--;
			t++;
		}
		else   //否则就不是回文数,给n赋值0并退出循环
		{
			n = 0;
			break;
		}
	}
	if (n == 1) printf("是回文数");  //n为1就是回文数,0就不是
	else printf("不是回文数");
	return 0;
}

如有错误请指出,谢谢