c语言实现输入一个正整数,要求①求出它是几位数②分别输出每一位数字③按逆序输出各位数字
时间: 2023-09-29 14:02:48 浏览: 128
好的,您的问题是:通过 C 语言实现输入一个正整数,要求 ①求出它是几位数 ②分别输出每一位数字 ③按逆序输出各位数字。以下是代码实现:
```
#include <stdio.h>
int main()
{
int num, count = 0;
int arr[10];
printf("请输入一个正整数:\n");
scanf("%d", &num);
// 求出它是几位数
while (num != 0)
{
arr[count] = num % 10;
count++;
num /= 10;
}
printf("这是一个 %d 位数。\n", count);
// 分别输出每一位数字
printf("每一位数字分别为:");
for (int i = count - 1; i >= 0; i--)
{
printf("%d ", arr[i]);
}
printf("\n");
// 按逆序输出每一位数字
printf("逆序输出为:");
for (int i = 0; i < count; i++)
{
printf("%d", arr[i]);
}
return 0;
}
```
希望能够解决您的问题。
相关问题
通过C语言练习-输入一个正整数,要求①求出它是几位数②分别输出每一位数字③按逆序输出各位数字
不问题,我理解了。为了回答你的问题,我需要运行以下C语言代码:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, digits = 0, num, i;
printf("请输入一个正整数:");
scanf("%d", &n);
// 确定位数
num = n;
while (num != 0) {
digits++;
num /= 10;
}
printf("它是 %d 位数。\n", digits);
// 分别输出每一位数字
num = n;
for (i = 0; i < digits; i++) {
printf("第 %d 位数字为 %d\n", i+1, num % 10);
num /= 10;
}
// 按逆序输出各位数字
printf("按逆序输出各位数字:");
num = n;
while (num != 0) {
printf("%d", num % 10);
num /= 10;
}
printf("\n");
return 0;
}
```
当你输入一个正整数后,程序会依次输出它是几位数,每一位数字,以及逆序输出每一位数字。希望这个回答能帮到你!
用c语言编写程序:输入一个正整数,要求:①求出它是几位数②分别输出每一位数字③按逆序输出各位数字。
在C语言中,你可以通过循环结构和取模运算来实现这个功能。以下是简单的步骤:
1. **求位数**:
首先,读入一个正整数,然后用`log10(n)`(对数函数)来计算位数,因为整数的位数等于其以10为底的对数加一。注意在C语言标准库中,`log10`函数并不直接存在,你需要自己计算或者使用`<math.h>`头文件中的`ilog10`。
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, digit_count = 0;
printf("请输入一个正整数: ");
scanf("%d", &num);
while (num > 0) {
digit_count++;
num /= 10;
}
printf("该数有%d位数。\n", digit_count);
}
```
2. **输出每一位数字**:
可以借助一个循环,每次取出最后一位并打印,再移除这一位。
```c
for (int i = digit_count - 1; i >= 0; i--) {
int last_digit = num % 10;
printf("第%02d位是:%d\n", i + 1, last_digit);
num /= 10;
}
```
3. **逆序输出各位数字**:
同样是一个循环,从低位到高位取出来。
```c
for (int i = 0; i < digit_count; i++) {
int last_digit = num % 10;
printf("倒数第%02d位是:%d\n", i + 1, last_digit);
num /= 10;
}
```
完整代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, digit_count = 0;
printf("请输入一个正整数: ");
scanf("%d", &num);
// 求位数
while (num > 0) {
digit_count++;
num /= 10;
}
printf("该数有%d位数。\n", digit_count);
// 输出每位数字
for (int i = digit_count - 1; i >= 0; i--) {
int last_digit = num % 10;
printf("第%02d位是:%d\n", i + 1, last_digit);
num /= 10;
}
// 逆序输出各位数字
for (int i = 0; i < digit_count; i++) {
int last_digit = num % 10;
printf("倒数第%02d位是:%d\n", i + 1, last_digit);
num /= 10;
}
return 0;
}
```
阅读全文