回文数也是一个数字,数字的特点是正反序是同一个数字。
比如:12321 、 3443 就是回文数
为了更好的显示,下面以偶数个数做示例
不是回文数的程序如下:
#include <stdio.h>
#include <windows.h>
int main()
{
int arr[] = {1,2,3,4,4,1};
int i = 0;
for (i = 0; i <= (sizeof(arr) / sizeof(arr[0]))/2; i++)//条件表达式意思是除去多余比较的次数。
//第一个和最后一个比较过了,最后一个就不用和第一个在比较
{
if (arr[i] != arr[5-i]) //第一个与最后一个相比,以此类推
{
printf("不是回文数");
break;
}
if (i == (sizeof(arr) / sizeof(arr[0])) / 2)
{
printf("是回文数");
}
}
system("pause");
return 0;
}
程序运行结果:
是回文数的程序如下:
#include <stdio.h>
#include <windows.h>
int main()
{
int arr[] = {1,2,3,3,2,1};
int i = 0;
for (i = 0; i <= (sizeof(arr) / sizeof(arr[0]))/2; i++)//条件表达式意思是除去多余比较的次数。
//第一个和最后一个比较过了,最后一个就不用和第一个在比较
{
if (arr[i] != arr[5-i]) //第一个与最后一个相比,以此类推
{
printf("不是回文数");
break;
}
if (i == (sizeof(arr) / sizeof(arr[0])) / 2)
{
printf("是回文数");
}
}
system("pause");
return 0;
}
运行结果:
回文字符串基本和回文数字是一样的
程序如下:
#include <stdio.h>
#include <windows.h>
int main()
{
char arr[] = "abcdcba";
int i = 0;
for (i = 0; i <= (strlen(arr) / 2) ; i++)
{
if (arr[i] != arr[6 - i])
{
printf("不是回文字符串");
break;
}
if (i == strlen(arr) / 2 )
{
printf("是回文字符串");
}
}
system("pause");
return 0;
}