一些数字可以颠倒过来看,例如 0.1.8 颜倒过来还是本身,6颠倒过来是9,9颠倒过来看是6,其他数字颜倒过来都不构成数字,类似的,…些多位数也可以颜倒过来看比如106颠倒过来是901。编写函数: int getReverse(int data):当data存在颠倒数时,返回其颠倒数,否则返回0。 Input 输入N>0个整数。每个数都不等于0,且都没有前导0和后缀0,如不会是001、100。
时间: 2024-03-02 07:51:56 浏览: 181
好的,下面是一个使用 C 语言编写的程序,可以实现您的需求:
```c
#include <stdio.h>
int getReverse(int data) {
int original = data; // 保存原始数据
int reverse = 0; // 保存颠倒数
while (data != 0) {
int digit = data % 10; // 取出最后一位数字
if (digit == 6) {
digit = 9;
} else if (digit == 9) {
digit = 6;
} else if (digit != 0 && digit != 1 && digit != 8) {
return 0; // 不是颠倒数,直接返回0
}
reverse = reverse * 10 + digit; // 计算颠倒数
data /= 10;
}
if (reverse != original) {
return reverse;
} else {
return 0;
}
}
int main() {
int n;
printf("请输入要输入的数字个数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
int data;
printf("请输入第%d个数字:", i + 1);
scanf("%d", &data);
int reverse = getReverse(data);
if (reverse != 0) {
printf("%d的颠倒数为%d\n", data, reverse);
} else {
printf("%d不存在颠倒数\n", data);
}
}
return 0;
}
```
这个程序首先提示用户输入要输入的数字个数,然后依次输入每个数字,通过调用 `getReverse` 函数计算其颠倒数并进行输出。
`getReverse` 函数接受一个整数 `data`,通过循环计算其颠倒数,并在计算的过程中进行判断,如果发现不是颠倒数则直接返回0,否则返回计算得到的颠倒数。在主函数中,如果颠倒数不为0,则输出颠倒数,否则输出不存在颠倒数。
希望这个程序可以帮助到您!如果您还有其他问题,请继续提问。
阅读全文