c语言用数组判断回文数
时间: 2024-06-17 15:05:21 浏览: 104
判断回文数的方法是将一个数字反转后,与原来的数字进行比较。如果两个数字相等,则该数字是回文数。而使用数组的方法,可以将一个数字的每一位上的数字存储在数组中,然后再对数组进行比较。
下面是用 C 语言实现判断回文数的代码:
```
#include <stdio.h>
int main()
{
int n, i, j, k, a[100];
printf("请输入一个数:");
scanf("%d", &n);
i = 0;
while (n > 0)
{
a[i] = n % 10;
n = n / 10;
i++;
}
k = i;
for (i = 0, j = k - 1; i < k / 2; i++, j--)
{
if (a[i] != a[j])
{
printf("%d 不是回文数\n", n);
return 0;
}
}
printf("%d 是回文数\n", n);
return 0;
}
```
相关问题
c语言用数组输出回文数
在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;
}
```
c语言数组判断回文数
以下是一个C语言数组判断回文数的例子:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len; i++)
{
if (str[i] != str[len - i - 1])
{
flag = 1;
break;
}
}
if (flag)
{
printf("%s 不是回文数", str);
}
else
{
printf("%s 是回文数", str);
}
return 0;
}
```
该程序首先要求用户输入一个字符串,然后使用for循环遍历字符串的前半部分,判断其是否与后半部分对称。如果不对称,则说明该字符串不是回文数,否则说明该字符串是回文数。
阅读全文