只使用头文件stdio.h 用c语言判断回文数
时间: 2024-11-25 15:17:26 浏览: 24
只使用`stdio.h`头文件来判断回文数,我们可以简化一些输入和输出的操作,但仍需另外编写一个辅助函数来处理字符串。下面是一个例子,它首先让用户输入一个整数,然后检查该整数是否为回文:
```c
#include <stdio.h>
#include <stdbool.h> // 需要此头文件才能使用bool类型
// 辅助函数用于字符串的反转
bool reverse(char* str, int start, int end) {
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
return true;
}
// 判断回文数
bool isPalindrome(int num) {
if (num < 0) return false; // 负数不是回文
char str[100]; // 临时存储转换后的字符串
int len = 0;
sprintf(str, "%d", num);
// 使用指针反向遍历字符串
bool foundDifference = false;
for (int i = 0, j = strlen(str) - 1; i < j && !foundDifference; i++, j--) {
if (str[i] != str[j]) {
foundDifference = true;
}
}
return !foundDifference;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (isPalindrome(num)) {
printf("%d是一个回文数。\n", num);
} else {
printf("%d不是一个回文数。\n", num);
}
return 0;
}
```
在这个代码里,我们仅用到了`stdio.h`和`stdbool.h`两个头文件。`reverse`函数用于字符串反转,`isPalindrome`函数则通过两个指针同时从两端向中间移动来判断是否有字符不同。
阅读全文