#include<stdio.h>
int main()
{
long long int x,y,z,count;//需要定义4个变量,其中x为输入整数,y为储存x的整数,z为最终得到的数,count为计数器.
printf("请输入一个整数x:");
scanf("%ld",&x);
if(x<10){
printf("输入错误请重新输入"); return 0;//需要晒出掉小于0的数小数,否则小于0的小数都会输出为不完美回文整数
}else
y=x;//储存x的值,否则在while循环中不可运行无输出结果
while(y>0){
z=z*10+y%10;//通过x除10的商和x除10的余数进行x的分离和新数y的构造
count++; //计数器,如果为完美回文整数则计数结果为奇数,反之为不完美回文整数计算结果
y=y/10;
}
if(z==x){//while循环结束后判断得到的新数z与原数x是否相等
if(count%2==0){//判断奇偶性
printf("整数x是一个完美回文整数");}
if(count%2==!0){
printf("整数x是一个不完美回文整数");}
}
else{
printf("整数数x不是一个回文整数");
}
return 0;
}
z没有设置初始值为0
#include<stdio.h>
long long int z; //放里面的话会随机赋初值
int main()
{
long long int x,y,count;//需要定义4个变量,其中x为输入整数,y为储存x的整数,z为最终得到的数,count为计数器.
printf("请输入一个整数x:");
scanf("%ld",&x);
if(x<10){
printf("输入错误请重新输入"); return 0;//需要晒出掉小于0的数小数,否则小于0的小数都会输出为不完美回文整数
}else
y=x;//储存x的值,否则在while循环中不可运行无输出结果
while(y>0){
z=z*10+y%10;//通过x除10的商和x除10的余数进行x的分离和新数y的构造
count++; //计数器,如果为完美回文整数则计数结果为奇数,反之为不完美回文整数计算结果
y=y/10;
}
if(z==x){//while循环结束后判断得到的新数z与原数x是否相等
if(count%2==0){//判断奇偶性
printf("整数x是一个完美回文整数");}
if(count%2==!0){
printf("整数x是一个不完美回文整数");}
}
else{
printf("整数数x不是一个回文整数");
}
return 0;
}