1、给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如:原数为321,应输出123的C语言编程
时间: 2023-11-14 12:31:34 浏览: 110
可以使用循环和取余运算来实现该功能。以下是实现该功能的C语言代码:
```
#include <stdio.h>
int main() {
int num, digit, count = 0;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
// 计算位数
int temp = num;
while (temp > 0) {
count++;
temp = temp / 10;
}
printf("该数是%d位数\n", count);
// 分别打印每一位数字
printf("每一位数字分别为:\n");
for (int i = count; i > 0; i--) {
digit = num / (int)pow(10, i - 1) % 10;
printf("%d ", digit);
}
// 按逆序打印各位数字
printf("\n逆序输出各位数字为:\n");
while (num > 0) {
digit = num % 10;
printf("%d ", digit);
num = num / 10;
}
return 0;
}
```
输入一个正整数,程序将会输出该数的位数,分别打印每一位数字,并按逆序打印各位数字。
相关问题
用c语言写一个给一个不多于5位的正整数,要求: ①求出它是几位数;
②将这个数按位分离并打印出来。
代码如下:
```c
#include <stdio.h>
int main() {
int num, digit, count = 0;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
// 求出它是几位数
if (num == 0) {
count = 1;
} else {
while (num > 0) {
count++;
num /= 10;
}
}
printf("这个数是%d位数\n", count);
// 将这个数按位分离并打印出来
printf("分离出来的各个数字为:");
for (int i = count; i >= 1; i--) {
digit = (num / (int)pow(10, i-1)) % 10;
printf("%d ", digit);
}
printf("\n");
return 0;
}
```
运行示例:
```
请输入一个不多于5位的正整数:12345
这个数是5位数
分离出来的各个数字为:1 2 3 4 5
```
```
请输入一个不多于5位的正整数:0
这个数是1位数
分离出来的各个数字为:0
```
java给出一个不多于5位的正整数,要求: 1.求出它是几位数。 2.分别打印出每一位数
给定一个不多于5位的正整数num,我们可以通过以下的Java代码来完成要求:
```java
import java.util.Scanner;
public class DigitNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个不多于5位的正整数:");
int num = input.nextInt();
String strNum = String.valueOf(num);
int length = strNum.length();
System.out.println(num + "是" + length + "位数。");
for (int i = 0; i < length; i++) {
System.out.println("第" + (i + 1) + "位数字是:" + strNum.charAt(i));
}
}
}
```
通过这个Java程序,我们首先接收用户输入的正整数num,然后将其转换为字符串形式,以便于获取其长度和每一位数字。接着我们求出num的位数,并且使用一个for循环遍历每一位数字,逐个打印出来。
例如,如果用户输入的正整数是12345,程序将会输出:
```
12345是5位数。
第1位数字是:1
第2位数字是:2
第3位数字是:3
第4位数字是:4
第5位数字是:5
```
这样就完成了我们的要求,输出了该正整数是几位数,并分别打印出了每一位数字。