c语言用数组输出回文数
时间: 2024-11-17 19:06:05 浏览: 19
在C语言中,判断一个数字是否为回文数通常需要将它转换成字符串,然后比较字符串正序读和反序读是否相同。以下是一个简单的步骤:
1. 定义一个函数 `isPalindrome`,接收整数作为输入。
2. 将整数转换为字符数组,可以利用itos() 函数或者自定义转换方法,这里假设已有一个内部函数 `intToCharArray` 来完成。
3. 比较原数组和反转后的数组是否相等。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
// 内部函数,将整数转换为字符数组
void intToCharArray(int num, char arr[]) {
int index = 0;
while (num > 0) {
arr[index] = (num % 10) + '0';
num /= 10;
index++;
}
// 添加终止符 '\0'
arr[index] = '\0';
}
// 判断回文数
int isPalindrome(int num) {
if (num < 0) return 0; // 负数不是回文数
char arr[20]; // 假设最大输入不超过9999
intToCharArray(num, arr);
// 反转数组并与原数组比较
int len = strlen(arr);
for (int i = 0, j = len - 1; i < j; i++, j--) {
if (arr[i] != arr[j]) {
return 0; // 不是回文数
}
}
return 1; // 是回文数
}
int main() {
int numbers[] = {121, 12321, 12345, 1221};
int size = sizeof(numbers) / sizeof(numbers[0]);
for (int i = 0; i < size; i++) {
if (isPalindrome(numbers[i])) {
printf("%d is a palindrome.\n", numbers[i]);
} else {
printf("%d is not a palindrome.\n", numbers[i]);
}
}
return 0;
}
```
阅读全文