4.输入一个整数,判断其是否回文数。 要求:①从键盘输入整数n,②判断其是否为回文数,输出格式要求:如果输入1234,则输出"整数1234不是回文 数。"如果输入1221,则输出"整数1221是回文数。"③对负数不作考虑。④输入其他整数验证程序的正确性。 用c语言
时间: 2024-10-28 08:12:19 浏览: 30
求回文数输入一个整数,判断其是否为回文数!
在C语言中,我们可以创建一个函数来判断一个整数是否是回文数。首先,我们需要定义一个函数`isPalindrome`,它接收一个整数作为参数,并通过比较数字的高低位来检查是否相等。以下是简单的实现步骤:
```c
#include <stdio.h>
#include <stdbool.h>
// 定义函数用于判断整数是否是回文
bool isPalindrome(int num) {
// 对于非负整数,转换成字符串便于处理
char str[100];
int len = snprintf(str, sizeof(str), "%d", num);
// 如果长度为奇数,中间数字不用参与比较
if (len % 2 == 1) {
str[len / 2] = '\0'; // 删除中间的数字字符
}
for (int i = 0, j = strlen(str) - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
return false;
}
}
return true;
}
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
if (n >= 0 && isPalindrome(n)) {
printf("整数%d是回文数。\n", n);
} else {
printf("整数%d不是回文数。\n", n);
}
// 测试其他整数
int testNums[] = {12345, 1221, 12321, 987654, -1234};
for (int i = 0; i < sizeof(testNums) / sizeof(testNums[0]); i++) {
if (testNums[i] >= 0 && isPalindrome(testNums[i])) {
printf("测试数%d也是回文数。\n", testNums[i]);
} else {
printf("测试数%d不是回文数。\n", testNums[i]);
}
}
return 0;
}
```
在这个程序中,我们首先获取用户输入的整数,然后调用`isPalindrome`函数进行判断。注意这里只考虑非负整数,因为题目说明对负数不作考虑。最后,我们添加了一些测试数据来验证程序的正确性。
阅读全文