用C语言实现:给一个不多于5位的正整数,要求:1.求出它是几位数;2,分别输出每一位数字;3,按逆序输出各位数字
时间: 2024-11-20 16:29:42 浏览: 115
在C语言中,我们可以使用while循环和取余操作来实现这个功能。以下是详细的代码:
```c
#include <stdio.h>
int main() {
int num, digit;
printf("请输入一个不超过5位的正整数:");
scanf("%d", &num);
// 求出位数
int digits = 0;
while (num > 0) {
digits++;
num /= 10; // 取整除10,得到最高位
}
printf("该数有%d位。\n", digits);
// 输出每一位数字
printf("按顺序输出每位数字:\n");
while (num != 0) {
digit = num % 10; // 取余数得到最低位
printf("%d ", digit);
num /= 10;
}
// 逆序输出各位数字
printf("\n逆序输出每位数字:\n");
while (digits--) {
num = num * 10 + digit; // 逆序重建数
digit = num % 10;
printf("%d", digit);
num /= 10;
}
return 0;
}
相关问题
用c语言 写:给一个不多于5位的正整数,要求: a.求出它是几位数; b. 分别打出每一位数字; c。按逆序打出各位数字, 例如原数为321,应输出123。程序设计
在C语言中,你可以通过以下步骤编写这个程序:
```c
#include <stdio.h>
#include <string.h> // 需要包含字符串处理库
// 函数声明
void print_number(int num);
void reverse_print(int num);
int main() {
int input_num;
printf("请输入一个不超过5位的正整数:");
scanf("%d", &input_num);
// 检查输入是否合法
if (input_num <= 0 || input_num >= pow(10, 5)) {
printf("输入错误!数必须在1到99999之间。\n");
return 0;
}
// 输出每一位数字
print_number(input_num);
// 逆序输出各位数字
reverse_print(input_num);
return 0;
}
// 打印每一位数字
void print_number(int num) {
int digit_count = 0;
while (num > 0) {
digit_count++;
printf("%d", num % 10); // 取余数得到当前位
num /= 10; // 除以10移除最低位
}
printf("\n位数:%d\n", digit_count);
}
// 逆序打印
void reverse_print(int num) {
int reversed[] = {0, 0, 0, 0}; // 假设最多4位数
for (int i = digit_count - 1; i >= 0; i--) {
reversed[i] = num % 10; // 取余数存储在数组中
num /= 10;
}
for (int i = 0; i < digit_count; i++) {
printf("%d", reversed[i]);
}
printf("\n逆序:");
}
用C语言实现给一个不多于5位的正整数,要求:1.求出它是几位数 2.分别打印出每一位数字 3.按逆序打印出各位数字,例如原数321,输出123
以下是使用C语言编程实现给定一个不多于5位的正整数,求出它是几位数,分别打印出每一位数字,按逆序打印出各位数字的示例代码:
```c
#include <stdio.h>
int main() {
int num, originalNum, digits = 0;
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
originalNum = num;
// 计算位数
while (num != 0) {
num /= 10;
digits++;
}
printf("它是%d位数\n", digits);
printf("每一位数字为:");
while (originalNum != 0) {
int digit = originalNum % 10;
printf("%d ", digit);
originalNum /= 10;
}
printf("\n");
printf("逆序输出为:");
while (num != 0) {
int digit = num % 10;
printf("%d", digit);
num /= 10;
}
printf("\n");
return 0;
}
```
运行此程序后,您可以输入一个不多于5位的正整数,然后程序将输出它是几位数,分别打印出每一位数字,并按逆序打印出各位数字。
注意:此代码假设输入的是一个有效的不多于5位的正整数。
阅读全文
相关推荐
















