C语言编程实现如下功能,键盘输入一个正整数,编程求出这位数是个几位数,并将其倒着输出。
时间: 2024-03-20 08:45:03 浏览: 118
可以通过循环和取模运算来实现这个功能。具体来说,每次对输入的数取模10,即可得到最后一位数字,然后将这个数字乘以10的对应次幂加到结果上,再将原数除以10继续进行相同的操作,直到原数为0为止。
以下是示例代码:
```c
#include <stdio.h>
int main() {
int n, digit, i, count = 0, reversed = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
// 计算位数
while (n > 0) {
digit = n % 10;
reversed = reversed * 10 + digit;
n /= 10;
count++;
}
printf("该数是%d位数,倒着输出为:", count);
// 输出倒序结果
for (i = 0; i < count; i++) {
digit = reversed % 10;
printf("%d", digit);
reversed /= 10;
}
printf("\n");
return 0;
}
```
运行程序,输入一个正整数,可以得到输出结果:
```
请输入一个正整数:123456
该数是6位数,倒着输出为:654321
```
相关问题
c语言实现键盘输入一个正整数(不超过9位,即最多9位),要求编程实现以下功能: ① 求出这个数是几位数,并输出其位数; ② 输出这个数的逆序数。
下面是一个实现功能的C语言程序:
```c
#include <stdio.h>
int main()
{
int n, m = 0, count = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
// 求出这个数的位数
while (n > 0)
{
count++;
n /= 10;
}
printf("这个数是%d位数\n", count);
// 输出这个数的逆序数
while (n > 0)
{
m = m * 10 + n % 10;
n /= 10;
}
printf("这个数的逆序数是%d\n", m);
return 0;
}
```
程序中,首先从键盘输入一个正整数,然后用 `while` 循环求出这个数的位数,同时将这个数除以10,直到它的值变为0。求出这个数的位数后,再用另一个 `while` 循环求出这个数的逆序数。循环体中,将 `m` 初始化为0,每次将 `n` 的个位数取出来,加到 `m` 的末尾,并将 `n` 除以10。最后,输出这个数的位数和逆序数。
从键盘输入一个正整数(不超过9位,即最多9位),要求编程实现以下功能: ① 求出这个数是几位数,并输出其位数; ② 输出这个数的逆序数c语言
以下是C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char num[10];
int len;
printf("请输入一个不超过9位的正整数:");
scanf("%s", num);
len = strlen(num);
printf("该数是%d位数\n", len);
printf("该数的逆序数为:");
for (int i = len-1; i >= 0; i--) {
printf("%c", num[i]);
}
return 0;
}
```
运行程序后,输入一个不超过9位的正整数,程序会输出该数的位数和逆序数。例如,输入123456789,输出结果为:
```
请输入一个不超过9位的正整数:123456789
该数是9位数
该数的逆序数为:987654321
```
阅读全文
相关推荐















