【问题描述】编写一个简单程序,实现输入一个不多于5位的正整数,输出该数的位数和逆序组成的整数。 【样例输入1】12345 【样例输出1】5 54321 【样例输入2】1230 【样例输出2】4 321不定义新函数
时间: 2024-09-20 07:14:03 浏览: 36
要实现这个功能,你可以使用一个简单的循环来获取输入数字的每一位,然后逐个累加到一个新的字符串中,同时计算原始数字的位数。最后,将字符串转换回整数并打印结果。以下是一个没有创建新函数的C语言程序实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
int num, digit;
char reversed_str[6]; // 假设最多5位数,额外留一位用于'\0'终止符
printf("请输入一个不多于5位的正整数:");
scanf("%d", &num);
// 计算位数并存储逆序字符串
int i = 0;
while (num > 0) {
digit = num % 10; // 取余数得到当前位
reversed_str[i] = '0' + digit; // 添加到逆序字符串
i++;
num /= 10; // 除以10,移除最低位
}
reversed_str[i] = '\0'; // 结束字符串
printf("位数:%d\n", i);
printf("逆序组成的整数:%d\n", atoi(reversed_str)); // 使用atoi将字符串转为整数
return 0;
}
```
在这个程序中,`scanf`用于读取用户的输入,`while`循环遍历数字的每一位,`atoi`函数则用来将逆序后的字符数组转换成整数。
阅读全文