用C语言写一个判断回文数
时间: 2024-11-09 12:30:50 浏览: 22
当然可以。在C语言中,为了判断一个整数是否为回文数,我们需要将整数转换成字符串,并从头和尾开始逐个比较字符。以下是一个简单的实现示例:
```c
#include <stdio.h>
#include <string.h>
// 定义辅助函数,用于获取字符串的前半部分
char* reverse_half(char* str) {
int len = strlen(str);
char half[len / 2 + 1];
for (int i = 0; i < len / 2; i++) {
half[i] = str[len - 1 - i]; // 取反一半的字符
}
half[len / 2] = '\0'; // 结束字符串
return half;
}
// 判断整数是否为回文数
int is_palindrome(int num) {
char num_str[20]; // 用于存储数值的字符串
sprintf(num_str, "%d", num); // 转换为字符串
// 检查反转后的字符串是否等于原字符串
char reversed_str[20];
strcpy(reversed_str, num_str);
return strcmp(reverse_half(reversed_str), num_str) == 0;
}
int main() {
int input_num;
printf("请输入一个整数:");
scanf("%d", &input_num);
if (is_palindrome(input_num)) {
printf("%d 是回文数\n", input_num);
} else {
printf("%d 不是回文数\n", input_num);
}
return 0;
}
阅读全文