C语言怎么判断一个数是不是是回文数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言怎么判断一个数是不是是回文数?相关的知识,希望对你有一定的参考价值。

所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如12321。

以下是判断一个数是否为回文数的代码:

大致思路就是将一个数反着排列一遍,如果和原先的数一样,那么就是回文数。这个排列过程用到了余数和整除。比如986,经过排列后为689,就不是回文数。

扩展资料:

判断一个字符串是否为回文:

参考技术A #include <stdio.h>
int main()
int i=0,j,k=1,n,a[20];
scanf("%d",&n);
while(n) a[i]=n%10;n/=10;i++;
for(j=0;j<i/2;j++)
if(a[j]!=a[i-j-1]) k=0;break;
k?printf("是回文"):printf("不是回文");
return 0;

参考技术B #include<stdio.h>
#include<string.h>
int main()

int j, i;
char a[20];
scanf("%s",a);
j=strlen(a);
for(i=0;i<j/2;i++)

if(a[i]!=a[j-i-1])//判断前后是否相等,不相等则跳出循环,
break;

if(i>=j/2) printf("yes\n");//判断是否跳出来的,若不是则输出yes,若是则输出no
else printf("no\n");
return 0;
参考技术C #include <stdio.h>
int main()

int num, temp;
int sum=0;
printf("Please input a number:");
scanf("%d", &num);
temp=num;
while(num)

sum = sum*10 + num%10;
num /= 10;

if(temp == sum)
printf("yes\n");
else
printf("no\n");
return 0;
本回答被提问者采纳
参考技术D int array[]="12321";

int num_str=0;
int i=0;
for(i=0;array[i]!='\0';i++)/*个数.*/

num_str++;

i=0;
while((array[0+i]==array[num_str-i])&&(i<=num_str-i))

i++;

if(num_str%2==0)/*偶数个数.*/

if(i==num_str/2) /*Compare until the middle two.*/

return 1;

else

return 0;


else /*奇数个数.*/
if(i==num_str/2+1) /*Compare until the middle one.*/

return 1;

else

return 0;

如何用c语言编程,判断一个三位数是不是为顺子(不是顺子直接提示出错)?

#include<stdio.h>

int main()

int n,a,b,c;

scanf("%d",&n);

a=n%10;//个位 

b=n%100/10;//十位 

c=n/100;//百位 

if((a+2==b+1&&b+1==c)||(a==b+1&&b+1==c+2))

printf("该数是顺子");

else 

printf("输入错误"); 

return 0;

希望能帮到你,望采纳;

参考技术A #include<stdio.h>
#include<math.h>//使用绝对值函数必须要引入math.h
int calc(int num)
int temp[3],i=0;
while(num!=0)//将三位数从个位开始取,依次存放在数组temp中
temp[i]=num%10;
num/=10;
i++;

//abs就是C语言求绝对值的数,顺子满足前面一个数减去后面一个数的差的绝对值等于1,并且满足第一位数减去第三位数的绝对值等于2,如果是顺子,该函数返回1,如果不是顺子该函数返回0
if(abs(temp[0]-temp[1])==1&&abs(temp[1]-temp[2])==1&&abs(temp[0]-temp[2])==2)
return 1;

return 0;

void main()
int num;
printf("请输入一个三位数:"); //提示并输入三位数
scanf("%d",&num);
while(num<100||num>999) //假如输入的不是三位数,提示重新输入
printf("你输入的不是一个三位数,请重新输入!\n\n");
printf("请输入一个三位数:");
scanf("%d",&num);

if(calc(num)==1)
printf("顺子!");
else
printf("输入错误!");

printf("\n");
参考技术B 用if语句判断吧,满足a<b<c就是顺子,否则不是。C语言表达为if(a <b && b < c) printf("顺子");

以上是关于C语言怎么判断一个数是不是是回文数?的主要内容,如果未能解决你的问题,请参考以下文章

C语言:判断一个数是不是为回文数,要求如下:

C++程序,判断一个数是不是为回文数

如何用c语言判断一个数是回文数

C语言判断一个数是不是回文数

C语言判断一个数是不是回文数

用C语言编写程序,判断一个数是不是为回文数。