用c语言给定一个不多于5位的正整数判断它是几位数并逆序输出
时间: 2023-05-25 20:04:17 浏览: 261
#include <stdio.h>
int main() {
int n;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &n);
if (n < 10) {
printf("这是一个一位数,逆序输出为:%d\n", n);
} else if (n < 100) {
printf("这是一个两位数,逆序输出为:%d%d\n", n % 10, n / 10);
} else if (n < 1000) {
printf("这是一个三位数,逆序输出为:%d%d%d\n", n % 10, (n / 10) % 10, n / 100);
} else if (n < 10000) {
printf("这是一个四位数,逆序输出为:%d%d%d%d\n", n % 10, (n / 10) % 10, (n / 100) % 10, n / 1000);
} else {
printf("这是一个五位数,逆序输出为:%d%d%d%d%d\n", n % 10, (n / 10) % 10, (n / 100) % 10, (n / 1000) % 10, n / 10000);
}
return 0;
}
相关问题
c语言4. 逆序输出数字 【问题描述】给定一个不多于5位的正整数,按逆序打印出各位数字。例如原数为213,应输出312。 【输入】一个不多于5位的正整数 【输出】该数的逆序形式 【样例输入1】213 【样例输出1】312 【样例输入2】12345 【样例输出2】54321
要实现这个功能,你可以使用C语言中的基本控制结构,如循环和临时变量。这里是一个简单的程序,它接受一个整数并按照要求逆序打印它的每一位:
```c
#include <stdio.h>
int main() {
int num, reversed = 0;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &num);
// 检查输入是否超过5位
if (num <= 0 || num >= pow(10, 5)) {
printf("输入错误! 数字必须在1到99999之间.\n");
return 1;
}
// 将数字分解成每一位
while (num != 0) {
// 取个位
reversed = reversed * 10 + num % 10;
// 移除个位
num /= 10;
}
// 打印逆序后的数字
printf("逆序后: %d\n", reversed);
return 0;
}
```
在这个程序中,我们首先读取用户的输入,然后检查它是否符合要求(即小于或等于99999)。接着,我们用一个`while`循环来提取数字的每一位,将其加到`reversed`上,并不断更新`reversed`以存储逆序的结果。当原始数字`num`变成0时,循环结束。最后,我们打印出逆序的数字。
如果你运行这个程序,它会根据你输入的示例进行操作。注意,如果输入的数字超过5位,程序会提示错误信息。
[5.08]整数位数判断 描述 判断整数的位数。 输入 一个不多于5位的正整数。 输出 如果不是符合要求的正整数,输出“Invalid input”;否则输出它是几位数,并逆序打印出各位数字。
要编写一个程序来判断给定整数的位数并逆序打印,我们可以使用以下C语言代码。首先,我们需要检查输入是否为正整数并且不超过5位。然后,我们可以通过计算对数(log10)来确定位数,再将结果转换为整数,从而得到位数。最后,我们将整数转换为字符串进行逆序处理并打印。
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, digit_count;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &num);
// 检查输入的有效性
if (num <= 0 || num >= pow(10, 5)) { // 如果不是正整数或超过5位
printf("Invalid input\n");
return 1; // 结束程序
}
// 计算位数(不包括小数点)
digit_count = static_cast<int>(log10(num) + 1); // log10返回的是以10为底的对数
// 逆序打印每一位数字
char str[6]; // 存储数字字符串,留一位用于空格
sprintf(str, "%d", num);
for (int i = digit_count - 1; i >= 0; i--) {
printf("%c", str[i]);
}
printf(" ");
return 0;
}
```
阅读全文