问题:输入一个整数(10位以内,也可自己改用更多位,需要修改类型),判断是否是回文数。
#include<stdio.h>
char palindromes_number(unsigned int number);
int main(void)
{
unsigned int number = 0;
printf("请输入一个整数(小于10位):");
scanf("%u",&number);
if(palindromes_number(number))
{
printf("不是回文数\r\n");
}
else
{
printf("是回文数\r\n");
}
return 0;
}
/*
* 函数功能:判断是否是回文数
* 函数形参:number---输入的数据
* 函数返回值: 0 表示输入的数据是回文数
* 1 表示输入的数据不是回文数
*/
char palindromes_number(unsigned int number)
{
int buff[10] = {0}; //int类型最大能存10位,想输入更多的位数可将number改用long类型 ,数组存储的数量也要更改。
char i = 0, j = 0;
for(i = 0; i < 10; i++) //将number的值一位一位的存到数组中,i 表示存了多少位到buff
{
buff[i] = number % 10;
number /= 10;
if(number == 0)
{
break;
}
}
for(; buff[i] != buff[j]; i--, j++) //判断是否是回文数
{
return 1; //不是回文数
}
return 0; //是回文数
}