判断一个整数是否为回文(回文数是指正序以左向右)和倒序(从右向左读都是一样的整数)用C语言怎么编程
时间: 2024-10-18 08:13:59 浏览: 29
判断一个整数是否为回文可以分为两种情况:一位数的情况和多位数的情况。对于一位数,显然只有一个数字本身就是回文;对于多位数,我们需要将其转换为字符串,然后逐位比较。
以下是C语言的一个简单实现:
```c
#include <stdio.h>
#include <string.h> // 包含字符串库用于转换整数为字符串
// 检查整数是否为回文
int isPalindrome(int num) {
if (num < 0 || (num != 0 && num % 10 == 0)) { // 如果是负数或仅有一个数字0,则不是回文
return 0;
}
char str[20]; // 存储字符串
sprintf(str, "%d", num); // 将整数转换为字符串
int len = strlen(str);
for (int i = 0; i < len / 2; ++i) { // 只比较一半,因为字符串是反向对称的
if (str[i] != str[len - 1 - i]) { // 如果任意一对字符不匹配,不是回文
return 0;
}
}
return 1; // 所有字符都匹配,所以是回文
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (isPalindrome(num))
printf("%d 是回文数。\n", num);
else
printf("%d 不是回文数。\n", num);
return 0;
}
阅读全文