编写c语言程序给一个不多于 5 位的正整数,要求: ①求出它是几位数; ②分别打出每一位数字; ③按逆序打出各位数字,例如原数为 321,应输出 123
时间: 2023-06-10 22:03:06 浏览: 119
好的,我明白了。以下是针对你的问题的C语言程序:
```
#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("每一位数字依次为:\n");
for (int i = count; i > 0; i--) {
digit = num % 10;
num /= 10;
printf("%d ", digit);
}
// 按逆序打出各位数字
printf("\n按逆序打出各位数字为:\n");
while (num != 0) {
digit = num % 10;
printf("%d", digit);
num /= 10;
}
return 0;
}
```
这个程序可以满足你的要求。你可以输入一个不多于5位的正整数,程序会输出这个数是几位数,每一位数字以及按逆序打出各位数字。
相关问题
用c语言编写程序,给一个不多于5位的正整数要求:①求出它是几位数; 分别打印出每一位数字 ③ 按逆序打印出各位数字,例如原数为321,应输出123。
以下是用 C 语言编写的程序,可以实现你的要求:
```c
#include <stdio.h>
int main() {
int num, digit, count = 0;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
int temp = num;
while (temp > 0) {
digit = temp % 10;
printf("第 %d 位数字是:%d\n", ++count, digit);
temp /= 10;
}
printf("它是 %d 位数。\n", count);
printf("逆序打印出各位数字:");
while (num > 0) {
digit = num % 10;
printf("%d", digit);
num /= 10;
}
printf("\n");
return 0;
}
```
如果你输入的是 12345,程序的输出结果如下:
```
请输入一个不多于5位的正整数:12345
第 1 位数字是:5
第 2 位数字是:4
第 3 位数字是:3
第 4 位数字是:2
第 5 位数字是:1
它是 5 位数。
逆序打印出各位数字:54321
```
希望这个程序能够帮助到你!
3.请编写一个C语言程序,给一个不多于5位的正整数,要求: ①求出它是几位数; ②分别输出每一位数字; ③按逆序输出各位数字,例如原数为321,应输出123。
以下是一个简单的C语言程序,用于满足您的要求:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[6];
int length, digit, reverse = 0;
// 输入不超过5位的正整数
printf("请输入一个不超过5位的正整数: ");
scanf("%s", input);
// 检查输入长度并计算位数
length = strlen(input);
if (length > 5) {
printf("输入错误: 数字超过5位。\n");
return 1;
}
// 输出每一位数字
for (digit = 0; digit < length; digit++) {
printf("第%d位数字是: %d\n", digit + 1, input[digit] - '0');
}
// 按逆序输出各位数字
for (reverse = length - 1; reverse >= 0; reverse--) {
printf("%d", input[reverse] - '0');
}
printf("\n逆序输出是: ");
return 0;
}
```
这个程序首先提示用户输入一个不超过5位的正整数,然后计算字符串的长度(即位数)。接下来通过循环遍历每一位数字并打印出来,最后再从右到左反向输出。
阅读全文