c语言判断是不是回文数
时间: 2024-08-05 21:01:04 浏览: 46
在 C 语言中,判断一个整数是否是回文数可以采用双指针法,即从两端向中间比较数字。下面是一个简单的示例函数:
```c
#include <stdbool.h>
bool isPalindrome(int num) {
if (num < 0) {
return false; // 负数不是回文数
}
int start = 0;
int end = sizeof(num) * CHAR_BIT - 1; // 使用无符号整型表示,避免负溢出
char* str = (char*)#
while (start < end) {
if (*str[start] != *str[end]) {
return false;
}
start++;
end--;
}
return true;
}
// 示例用法
int main() {
int num = 12321;
if (isPalindrome(num)) {
printf("%d is a palindrome number.\n", num);
} else {
printf("%d is not a palindrome number.\n", num);
}
return 0;
}
```
在这个函数中,我们首先检查输入的数字是否为负数,如果是,则直接返回 false。然后,我们将整数转换为字符数组,并使用两个指针 `start` 和 `end` 分别指向数组的开始和结束。在每次循环中,如果两个指针所指向的字符不相等,说明不是回文,返回 false;否则继续移动指针。当 `start >= end` 时,整个字符串都已比较过,说明是回文,返回 true。
阅读全文