c语言给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
时间: 2023-06-01 16:01:57 浏览: 82
```c
#include<stdio.h>
int main()
{
int num, digits = 0, temp;
int a[5] = {0, 0, 0, 0, 0}; // 用数组存储每一位数字
printf("请输入一个不多于5位的整数:");
scanf("%d", &num);
// 判断位数
temp = num;
while (temp) {
digits++;
temp /= 10;
}
printf("它是%d位数\n", digits);
// 分别输出每一位数字
temp = num;
for (int i = digits - 1; i >= 0; i--) {
a[i] = temp % 10;
temp /= 10;
}
printf("每一位数字为:");
for (int i = 0; i < digits; i++) {
printf("%d ", a[i]);
}
printf("\n");
// 按逆序输出各位数字
printf("按逆序输出各位数字:");
for (int i = digits - 1; i >= 0; i--) {
printf("%d", a[i]);
}
printf("\n");
return 0;
}
```
相关问题
c语言 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
在C语言中,你可以通过以下步骤实现这个功能:
1. **确定位数**:首先,可以使用取模运算 `%` 和整除运算 `/` 来确定整数的位数。位数等于整数除以10的幂次方直到结果为0为止。例如,如果给定一个5位数,我们可以这样做:
```c
int num = <your input>;
int digits = 0;
while (num > 0) {
digits++;
num /= 10;
}
```
2. **输出每一位数字**:接着,使用循环从右向左遍历每一位,借助取余运算 `%` 可以得到每一位的值。这里是一个示例函数:
```c
void print_digits(int num) {
while (num > 0) {
int digit = num % 10;
printf("%d", digit);
num /= 10;
}
printf("\n");
}
```
3. **逆序输出各位数字**:为了逆序输出,可以在上面的 `print_digits` 函数内部稍微调整,先将每一位存储在一个数组里,然后倒序打印:
```c
void reverse_print(int num) {
int digits_array[6] = {0}; // 假设最多5位数,加上一位0作为占位符
for (int i = 0; i <= digits; i++) {
digits_array[i] = num % 10;
num /= 10;
}
for (int i = digits - 1; i >= 0; i--) {
printf("%d", digits_array[i]);
}
printf("\n");
}
// 调用函数示例
int main() {
int input_num = <your input>;
printf("位数:%d\n", digits);
print_digits(input_num);
reverse_print(input_num);
return 0;
}
```
替换 `<your input>` 为你想要测试的具体整数。
用C语言给出一个不多于5位的整数,要求1、求出它是几位数 2、分别输出每一位数字3、按逆序输出各位数字,例如原数为321,应输出123
在C语言中,可以使用循环和条件判断来实现这个功能。以下是一个简单的程序示例:
```c
#include <stdio.h>
#include <string.h>
void printNumber(int num) {
int digits[6]; // 存储每一位数字,假设最大5位数
int length = 0;
// 计算位数并存储每一位
while (num != 0) {
digits[length] = num % 10; // 取余得到最低位
num /= 10; // 除以10移除最低位
length++; // 长度加一
}
printf("这是%d位数\n", length);
// 输出每一位数字
for (int i = 0; i < length; i++) {
printf("%d ", digits[i]);
}
printf("\n");
// 逆序输出各位数字
printf("逆序输出: ");
for (int i = length - 1; i >= 0; i--) {
printf("%d", digits[i]);
}
printf("\n");
}
int main() {
int input;
printf("请输入一个不超过5位的整数: ");
scanf("%d", &input);
printNumber(input);
return 0;
}
```
阅读全文