(指针)使用一个函数求100到10000以内的回文数
时间: 2023-05-31 20:05:18 浏览: 293
回文数是指从左到右和从右到左读起来都一样的数,例如121、1221、12321等。
下面是使用指针的C语言代码,实现求100到10000以内的回文数的功能:
```c
#include <stdio.h>
void find_palindrome(int *start, int *end) {
int *p, *q;
for (p = start; p <= end; p++) {
int n = *p, m = 0;
for (q = p; q <= end; q++) {
m = m * 10 + *q % 10;
*q /= 10;
if (n == m) {
printf("%d ", n);
}
if (n < m) {
break;
}
}
}
}
int main() {
int a[9901], *p = a, i;
for (i = 100; i <= 10000; i++) {
*p++ = i;
}
find_palindrome(a, p - 1);
return 0;
}
```
上述代码中,`find_palindrome`函数用于查找从指针`start`到指针`end`范围内的回文数。首先用指针`p`遍历这个范围内的所有数,然后用指针`q`从`p`开始向右遍历,计算出从右到左的数`m`。如果`n == m`,说明当前数`n`是回文数,输出它的值。如果`n < m`,说明已经不可能有比当前数更大的回文数,退出循环。
在`main`函数中,先用一个整数数组`a`存储100到10000之间的所有数,然后将数组的起始地址`a`和结束地址`p - 1`传给`find_palindrome`函数,让它查找回文数并输出。最后返回0,表示程序正常结束。
阅读全文