C语言编程 输入一个正整数,要求:按逆序打印出这个数的每位数字,并打印出是几位数。若输入负数则输出“输入有误”
时间: 2024-11-13 18:18:30 浏览: 29
在C语言编程中,你可以通过以下步骤实现这个功能:
首先,我们需要从用户那里获取输入并检查其是否为正整数。如果输入的是负数,就输出错误信息;如果是正整数,我们就遍历每一位,然后按照逆序的方式打印出来,并统计位数。
下面是一个简单的程序示例:
```c
#include <stdio.h>
int main() {
int num, reverse = 0;
char digit[10];
// 获取输入并判断是否为正整数
printf("请输入一个正整数: ");
scanf("%d", &num);
if (num < 0) {
printf("输入有误\n");
return 0;
}
// 计算位数
while (num > 0) {
reverse++; // 每次循环num都会减小一位,所以reverse增加1
digit[reverse - 1] = num % 10 + '0'; // 取余数并转换为字符添加到数组
num /= 10; // 移除最低位
}
// 逆序打印
printf("逆序显示的数字及位数: ");
for (int i = reverse; i > 0; i--) {
printf("%d", digit[i - 1]);
}
printf("\n位数: %d\n", reverse);
return 0;
}
```
当你运行这个程序并输入一个正整数时,它会按要求逆序打印每个数字并显示位数。如果输入的是负数,它将输出"输入有误"。
阅读全文