给一个不多手5位的正整数,要求: ①求出它是几位数; ②分别输出每一位数字; ③按逆序输出各位数字,例如原数为 321,应输出 123。c语言
时间: 2023-06-01 19:04:11 浏览: 78
#include <stdio.h>
int main()
{
int num, digit, count = 0;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
int temp = num; // 保存原始数值
// 计算位数
while (temp != 0)
{
count++;
temp /= 10;
}
printf("该数是%d位数\n", count);
printf("每一位数字分别是:");
// 依次取每一位数字并输出
for (int i = count; i > 0; i--)
{
digit = num / (int)pow(10, i - 1);
printf("%d ", digit);
num %= (int)pow(10, i - 1);
}
printf("\n按逆序输出各位数字:");
// 按逆序输出每一位数字
while (num != 0)
{
digit = num % 10;
printf("%d", digit);
num /= 10;
}
return 0;
}
相关问题
4.7 给一个不多于5位的正整数,要求:①求出它是几位数; ②分别输出每一位数字;
输入一个不多于5位的正整数,可以先将其转换为字符串,然后利用字符串长度函数 len() 求出它是几位数,再用字符串切片或循环遍历字符串取出每一位数字。
示例代码:
```python
num = input("请输入一个不多于5位的正整数:")
length = len(num)
print("它是{}位数".format(length))
print("每一位数字分别为:")
for i in range(length):
print(num[i])
```
运行示例:
```
请输入一个不多于5位的正整数:1234
它是4位数
每一位数字分别为:
1
2
3
4
```
输入一个正整数,要求:①求出它是几位数②分别输出每一位数字③按逆序输出各位数字。
请问是需要Python代码实现吗?如果是的话,可以参考以下代码:
```python
num = int(input("请输入一个正整数:"))
# 求出它是几位数
count = 0
temp = num
while temp > 0:
count += 1
temp //= 10
print("它是%d位数" % count)
# 分别输出每一位数字
digits = []
temp = num
while temp > 0:
digits.append(temp % 10)
temp //= 10
digits.reverse()
print("每一位数字为:", end="")
for digit in digits:
print(digit, end=" ")
# 按逆序输出各位数字
print("\n逆序输出各位数字为:", end="")
for digit in digits:
print(digit, end="")
```
运行结果:
```
请输入一个正整数:12345
它是5位数
每一位数字为:1 2 3 4 5
逆序输出各位数字为:54321
```