用c语言写出:给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
时间: 2023-09-10 16:04:52 浏览: 187
### 回答1:
以下是示例代码:#include <stdio.h>int main()
{
int number;
int bai,shi,ge; printf("请输入一个不多于5位的整数:");
scanf("%d",&number);
if (number<10)
printf("这是一位数\n");
else if (number<100)
printf("这是两位数\n");
else if (number<1000)
printf("这是三位数\n");
else if (number<10000)
printf("这是四位数\n");
else
printf("这是五位数\n"); bai=number/100;
shi=number/10%10;
ge=number%10; printf("它的每一位数字为:%d %d %d\n",bai,shi,ge);
printf("按逆序输出各位数字:%d %d %d\n",ge,shi,bai); return 0;
}
### 回答2:
#include<stdio.h>
int main()
{
int num; //输入的整数
int digit; //位数
int temp; //用于存放逆序后的数字
int i; //循环变量
printf("请输入一个不多于5位的整数:");
scanf("%d", &num);
//判断位数
if(num < 10)
digit = 1;
else if(num < 100)
digit = 2;
else if(num < 1000)
digit = 3;
else if(num < 10000)
digit = 4;
else
digit = 5;
printf("该整数是%d位数\n", digit);
printf("每一位数字为:");
for(i = 0; i < digit; i++)
{
int singleDigit = num % 10; //取出最低位数字
printf("%d ", singleDigit);
num /= 10; //去掉最低位数字
}
printf("\n");
//按逆序输出每一位数字
temp = 0;
for(i = 0; i < digit; i++)
{
temp = temp * 10 + num % 10; //将原数的最低位数字加到逆序数字中
num /= 10; //去掉最低位数字
}
printf("逆序输出为:%d\n", temp);
return 0;
}
### 回答3:
#include <stdio.h>
int main() {
int num;
printf("请输入一个不多于5位的整数:");
scanf("%d", &num);
int count = 0;
int digits[5]; // 存储每位数字的数组
// 求出位数,并将每位数字存入数组
while (num > 0) {
digits[count] = num % 10;
num /= 10;
count++;
}
printf("它是%d位数\n", count);
printf("每一位数字为:");
for (int i = count-1; i >= 0; i--) {
printf("%d ", digits[i]);
}
printf("\n逆序输出为:");
for (int i = 0; i < count; i++) {
printf("%d", digits[i]);
}
return 0;
}
运行结果:
请输入一个不多于5位的整数:12345
它是5位数
每一位数字为:1 2 3 4 5
逆序输出为:12345
阅读全文