C语言输入一个正整数,要求:按逆序打印出这个数的每位数字,并打印出是几位数。若输入负数则输出“输入有误”
时间: 2024-11-14 17:23:10 浏览: 60
在C语言中,你可以通过遍历给定的整数每一位,并将其加入到字符串中来实现逆序打印。如果输入的是负数,就返回错误信息。下面是相应的代码实现:
```c
#include <stdio.h>
#include <string.h> // 引入字符串库,用于创建临时字符数组
int main() {
long num;
printf("请输入一个正整数(或0结束输入):");
scanf("%ld", &num);
if (num <= 0) { // 检查是否为正整数
printf("输入有误\n");
return 0;
}
char reversed[] = ""; // 创建一个空字符串存储逆序的数字
int digits = 0;
while (num != 0) {
reversed[digits++] = num % 10 + '0'; // 取余数并转换为字符,加到字符串末尾
num /= 10; // 删除最低位
}
reversed[digits] = '\0'; // 添加字符串终止符
printf("逆序后的数字是:%s, 一共%d位\n", reversed, digits);
return 0;
}
相关问题
C语言编程 输入一个正整数,要求:按逆序打印出这个数的每位数字,并打印出是几位数。若输入负数则输出“输入有误”
在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;
}
```
当你运行这个程序并输入一个正整数时,它会按要求逆序打印每个数字并显示位数。如果输入的是负数,它将输出"输入有误"。
C语言编程 循环语句输入一个正整数,要求:按逆序打印出这个数的每位数字,并打印出是几位数。若输入负数则输出“输入有误”
在C语言编程中,你可以通过`while`循环结合条件判断和取模运算来实现这个功能。以下是示例代码:
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
if (num < 0) {
printf("输入有误\n");
return 0;
}
// 将数字转换成字符串,以便逆序遍历
char str[100];
sprintf(str, "%d", num);
// 计算字符串长度,即输入数字的位数
int length = strlen(str);
// 从后向前遍历并打印每个数字
for (int i = length - 1; i >= 0; i--) {
printf("%c", str[i]);
// 如果不是最后一位,还要打印位置信息
if (i != 0) {
printf("(第 %d 位)", i + 1);
}
}
printf("\n");
return 0;
}
```
阅读全文
相关推荐















