从键盘输入一个正整数(不超过9位,即最多9位),要求编程实现以下功能: ① 求出这个数是几位数,并输出其位数; ② 输出这个数的逆序数。 输入格式: 输入一个正整数(不超过9位,即最多9位)。 输出格式: 输出刚刚输入的正整数,包含的位数及其逆序数,中间用英文逗号分隔开,最后换行。 输入样例: 147258369 输出样例: 147258369,9,963852741 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
时间: 2024-03-25 07:40:28 浏览: 91
以下是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *s);
int main()
{
char s[10];
scanf("%s", s);
int len = strlen(s);
printf("%s,%d,", s, len);
reverse(s);
printf("%s\n", s);
return 0;
}
void reverse(char *s)
{
int len = strlen(s);
int i;
for (i = 0; i < len / 2; i++)
{
char t = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = t;
}
}
```
思路解析:
这道题需要我们分别求出输入的正整数的位数和逆序数,其中求逆序数可以使用字符串的方法来实现。具体来说,我们先定义一个 reverse 函数,用来将字符串 s 中的字符逆序排列,然后在主函数中,我们先使用 strlen 函数求出输入的正整数的位数,然后将其输出,接着调用 reverse 函数将正整数的逆序数求出,并输出到屏幕上。需要注意的是,我们输出逆序数时需要在最后加上一个换行符。
相关问题
从键盘输入一个正整数(不超过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
```
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。最后,输出这个数的位数和逆序数。
阅读全文