C语言 输入一个不多于4位的正整数。求出他是几位数。分别打印每一位数字。按照逆序打印出各位数字
时间: 2024-06-13 19:08:30 浏览: 150
以下是C语言实现输入一个不多于4位的正整数,求出它是几位数,分别打印出每一位数字,按逆序打印出各位数字的代码:
```c
#include <stdio.h>
int main() {
int num, digit, count = 0;
printf("请输入一个不多于4位的正整数:");
scanf("%d", &num);
int temp = num;
// 求出它是几位数
while (temp != 0) {
count++;
temp /= 10;
}
printf("它是%d位数\n", count);
// 分别打印出每一位数字
printf("每一位数字分别是:");
for (int i = count; i > 0; i--) {
digit = num / (int)pow(10, i - 1) % 10;
printf("%d ", digit);
}
printf("\n");
// 按逆序打印出各位数字
printf("按逆序打印出各位数字:");
while (num != 0) {
printf("%d", num % 10);
num /= 10;
}
printf("\n");
return 0;
}
```
相关问题
用C语言输入一个不多于五位的正整数,要求:求出他是几位数,分别输出每一位数字,按逆序输出各位数字
在C语言中,你可以通过遍历输入的字符串来获取整数的每一位,同时计算总位数。以下是相应的代码示例:
```c
#include <stdio.h>
#include <string.h>
void reverseDisplay(int num, int digits) {
for (int i = digits - 1; i >= 0; i--) {
printf("%d", num % 10); // 取余数得到最后一位
num /= 10; // 除以10移除最低位
}
}
int main() {
char input[6]; // 存储最多5位数
int num, digits;
printf("请输入一个不超过5位的正整数: ");
fgets(input, sizeof(input), stdin); // 从标准输入读入字符串
input[strcspn(input, "\n")] = '\0'; // 去除换行符
num = atoi(input); // 转换成整数
digits = strlen(input) - 1; // 总位数减1,因为数组索引从0开始
printf("\n输入的数字是%d位数:\n", digits);
reverseDisplay(num, digits); // 逆序打印每一位数字
return 0;
}
```
当运行此程序,它会提示用户输入一个不超过5位的正整数,然后反向输出每一位数字。
c语言 输入一个不多于5位的正整数,要求:求出它是几位数分别输出每一位数字按逆序输出各位数字,例如原数为321,应输出123
在C语言中,可以使用循环结构遍历输入的正整数的每一位,并将其存储在一个字符数组中,然后再逆序输出这个数组。下面是一个简单实现的例子:
```c
#include <stdio.h>
#define MAX_DIGITS 6
void reverseDigits(int num) {
char digits[MAX_DIGITS] = {0};
int digit, i = 0;
// 取余数得到每一位数字,并存入数组
while (num > 0) {
digits[i++] = num % 10 + '0'; // 加上'0'是因为我们想要数字形式而不是ASCII码
num /= 10;
}
// 逆序输出数组
for (i = MAX_DIGITS - 1; i >= 0; i--) {
printf("%d", digits[i]);
}
}
int main() {
int number;
printf("请输入一个不超过5位的正整数: ");
scanf("%d", &number);
// 检查输入长度
if (number <= 0 || number > pow(10, MAX_DIGITS - 1)) {
printf("输入错误!请确保输入一个1到99999之间的正整数.\n");
return 1;
}
reverseDigits(number);
printf("\n");
return 0;
}
```
当用户输入一个正整数后,程序会先检查输入是否合法,然后将数字逆序并打印出来。
阅读全文