用c语言编一函数,判断某一整数是否为回文数,若是返回1,否则返回 0。所谓回文数是该数正读与反读是一样的。例如,12321 就是一个回文数。
时间: 2024-05-05 07:20:05 浏览: 20
好的,以下是用 C 语言编写一个判断整数是否为回文数的函数:
```
#include <stdio.h>
int isPalindrome(int num) {
int original = num;
int reversed = 0;
while (num > 0) {
int digit = num % 10;
reversed = reversed * 10 + digit;
num /= 10;
}
return original == reversed;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (isPalindrome(num)) {
printf("%d 是回文数\n", num);
} else {
printf("%d 不是回文数\n", num);
}
return 0;
}
```
这个函数首先把输入的整数保存在 original 中,然后用 while 循环计算出它的反向数字,并保存在 reversed 中。最后,如果 original 等于 reversed,就说明这个整数是回文数,返回 1;否则,返回 0。
请注意,这个函数只能处理正整数。如果你想要支持负数和 0,需要稍微修改一下代码。
相关问题
c语言编写一个函数,判断一个数是否为回文数,是则返回1否则返回0
好的,以下是一个简单的 C 代码实现:
```
int isPalindrome(int num) {
int temp = num, reverse = 0;
while (temp != 0) {
reverse = reverse * 10 + temp % 10;
temp /= 10;
}
return num == reverse ? 1 : 0;
}
```
这个函数接收一个整数作为参数,通过将它的每一个数字取出并倒序排列,再与原数字比较来判断是否为回文数。
用C语言编写一个函数,判断一个整数是不是回文数
以下是用C语言编写的判断整数是否为回文数的函数:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPalindrome(int x) {
// 如果x小于0或者最后一位是0但x不等于0,则x不是回文数
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
int reversed = 0;
while (x > reversed) { // 只需要翻转一半的数字
reversed = reversed * 10 + x % 10;
x /= 10;
}
// 如果数字长度为奇数,可以通过reversed/10去除中间的数字
// 例如,1221,翻转后reversed=122,x=12
return x == reversed || x == reversed / 10;
}
```
该函数首先判断输入的整数是否为负数或者以0结尾但不是0本身,这些情况下该整数不是回文数。然后,利用一个while循环将数字翻转,只需要翻转数字的一半即可。在翻转的过程中,需要将翻转后的数字与原始数字进行比较,如果相等,则说明该整数是回文数。如果数字长度为奇数,则可以通过reversed/10去除中间的数字。