用c语言写出功能:判定用户输入的正整数是否为“回文数”,所谓“回文数”是指正读反读都相同的数。例如:1234321 是回文。
时间: 2024-03-08 19:50:31 浏览: 111
以下是用 C 语言实现判断输入正整数是否为回文数的代码:
```c
#include <stdio.h>
int main() {
int n, num, digit, rev = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
num = n;
while (num > 0) {
digit = num % 10;
rev = rev * 10 + digit;
num /= 10;
}
if (n == rev) {
printf("%d 是回文数", n);
} else {
printf("%d 不是回文数", n);
}
return 0;
}
```
代码实现的思路是将输入的正整数反转,再与原来的数比较是否相等,从而判断是否为回文数。
相关问题
编制程序实现功能:判定从键盘输入的正整数是否“回文数”。所谓“回文数”,是指正读反读都相同的数,例如:输入整数789987,程序应显示出是回文数信息。
可以按照以下步骤编制程序实现判定回文数的功能:
1. 从键盘输入一个正整数,保存到变量num中。
2. 将num转换成字符串,保存到变量str中。
3. 使用字符串的反转函数将str反转,保存到变量rev_str中。
4. 比较str和rev_str是否相等,如果相等,则说明num是回文数,否则不是。
5. 根据判断结果输出相应的信息。
下面是一个示例程序:
```
#include <stdio.h>
#include <string.h>
int main()
{
int num;
char str[20], rev_str[20];
printf("请输入一个正整数:");
scanf("%d", &num);
sprintf(str, "%d", num);
strcpy(rev_str, str);
strrev(rev_str);
if (strcmp(str, rev_str) == )
printf("%d是回文数。\n", num);
else
printf("%d不是回文数。\n", num);
return ;
}
```
在上面的程序中,我们使用了sprintf函数将整数num转换成字符串str,使用了strcpy函数将str复制到rev_str中,使用了strrev函数将rev_str反转。最后,使用strcmp函数比较str和rev_str是否相等,输出相应的信息。
C语言:判断一个字符串是否为回文(所谓回文就是正读与反读都相同)
在C语言中,判断一个字符串是否为回文可以采用双指针的方法,从字符串的两端开始向中间移动,比较对应位置的字符是否相等。以下是简单的步骤:
1. 定义两个指针,一个指向字符串的头部(`start`),另一个指向尾部(`end`)。
2. 当`start`小于`end`时,继续执行循环。
3. 比较`start`和`end`处的字符,如果它们不相等,则该字符串不是回文;如果相等,将`start`向前移一位,`end`向后移一位。
4. 当`start`大于等于`end`时,说明所有字符都已经检查过,且没有发现不匹配的字符,所以该字符串是回文。
下面是一个示例函数,用于实现这个功能:
```c
#include <stdbool.h>
#include <string.h>
bool isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return false; // 字符不匹配,不是回文
}
start++;
end--;
}
return true; // 所有字符都匹配,是回文
}
```
阅读全文