C语言怎么判断一个数是不是是回文数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言怎么判断一个数是不是是回文数?相关的知识,希望对你有一定的参考价值。
所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如12321。
以下是判断一个数是否为回文数的代码:
大致思路就是将一个数反着排列一遍,如果和原先的数一样,那么就是回文数。这个排列过程用到了余数和整除。比如986,经过排列后为689,就不是回文数。
扩展资料:
判断一个字符串是否为回文:
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语言怎么判断一个数是不是是回文数?的主要内容,如果未能解决你的问题,请参考以下文章