C语言:输入一个不多于5位的正整数,要求1:求出它是几位数; 要求2:分别打印出每一位数; 要求3:按逆序打印出各位数字;
时间: 2023-05-23 22:03:21 浏览: 63
ChitGPT: 以下是 C 语言的代码,可以实现您的需求:
```c
#include <stdio.h>
int main() {
int num, digit, count = 0;
int digits[5];
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
while (num) {
digit = num % 10; // 取出最低位的数字
digits[count++] = digit; // 将每一位数字存储到数组中
num /= 10; // 将输入数字除以10,获得更高位的数字
}
printf("该数字有 %d 位\n", count);
printf("各位数字分别为:");
for (int i = count - 1; i >= 0; i--) {
printf("%d ", digits[i]);
}
printf("\n按逆序打印各位数字为:");
for (int i = 0; i < count; i++) {
printf("%d ", digits[i]);
}
printf("\n");
return 0;
}
```
希望以上代码可以帮到您!
相关问题
C语言:给一个不多于5位的正整数求它是几位数并逆序打印出各位数字。
```c
#include <stdio.h>
int main() {
int num, count = 0;
int digits[5] = {0}; // 用数组存储每一位数字
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
// 分解每一位数字并存储
while (num > 0) {
digits[count++] = num % 10;
num /= 10;
}
printf("该数是%d位数,逆序打印出各位数字为:", count);
for (int i = 0; i < count; i++) {
printf("%d", digits[i]);
}
printf("\n");
return 0;
}
```
运行结果:
```
请输入一个不多于5位的正整数:12345
该数是5位数,逆序打印出各位数字为:54321
```
用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
```