用c语言编写输入一个正整数n,整数区间在[11-100000],且个位数不允许为0。则输出它的逆序整数,例如输入4725,则输出5274,如果输入的数不在区间内,或者个位数为0,则输出“-1”
时间: 2025-01-05 15:38:32 浏览: 6
在 C 语言中,你可以通过以下几个步骤来实现这个功能:
1. 首先,提示用户输入一个正整数 `n`,并检查它是否在指定的范围内 [11, 100000] 以及个位数是否为0。这可以通过条件语句如 `if` 和 `while` 来完成。
```c
int n;
do {
printf("请输入一个正整数 (11-100000),个位数不能为0:");
scanf("%d", &n);
} while (n < 11 || n > 100000 || n % 10 == 0);
```
2. 接着,将输入的数字转换成字符串,然后遍历该字符串,从后往前取每一位作为新的整数,并拼接起来。因为是逆序操作,所以需要存储临时结果。
```c
char str[6]; // 假设最多5位数,加上前导0
sprintf(str, "%d", n); // 将整数转换为字符串
int reversed = 0; // 存储逆序后的整数
int len = strlen(str) - 1; // 获取字符串长度
// 从后向前取每位数,转换回整数并累加
for (int i = len; i >= 0; --i) {
reversed *= 10;
reversed += str[i] - '0';
}
```
3. 最后,检查逆序后的整数是否在正确的范围内,如果是,则打印;否则,输出 "-1"。
```c
if (reversed >= 11 && reversed <= 100000) {
printf("逆序后的整数为:%d\n", reversed);
} else {
printf("-1\n");
}
```
阅读全文