C语言编程输入一个不多于3位的正整数,求出它是几位数,并按逆序输出。
时间: 2024-11-09 17:21:29 浏览: 26
C语言经典编程案例.doc、计算机二级c语言资料
在C语言中,你可以通过以下几个步骤来实现这个功能:
1. 首先,创建一个循环来持续读取用户的输入,直到用户输入的是一个非数字字符或超过3位数为止。
```c
int num = 0;
char digit;
while (scanf("%1d", &digit) == 1 && digit != -1 && digit <= 9) {
num = num * 10 + digit;
}
```
这里,`%1d`表示读入一个整数字符,`scanf()`函数会返回读入的项的数量,如果是1则说明读入了一个有效数字,而`digit != -1`用于检查是否输入了非数字字符,`digit <= 9`限制了数字不超过三位。
2. 接着,计算输入的数有多少位,如果它是一个一位数,则直接输出;如果是两位或三位数,需要额外处理。
```c
int digits = 0;
if (num >= 10 && num < 100) {
digits = 2;
} else if (num >= 100) {
digits = 3;
}
// 翻转并打印数字
for (int i = digits - 1; i >= 0; i--) {
printf("%d", num % 10);
num /= 10;
}
```
这里,`digits`变量记录了数字的位数。然后使用`for`循环从高位到低位依次输出每一位数字,每次除以10获取下一位。
完整的代码示例:
```c
#include <stdio.h>
int main() {
int num = 0;
char digit;
while (scanf("%1d", &digit) == 1 && digit != -1 && digit <= 9) {
num = num * 10 + digit;
}
int digits = 0;
if (num >= 10 && num < 100) {
digits = 2;
} else if (num >= 100) {
digits = 3;
}
for (int i = digits - 1; i >= 0; i--) {
printf("%d", num % 10);
num /= 10;
}
return 0;
}
阅读全文