这个代码还能在精简吗?
题目是:给一个不多于4位的正整数,编程实现:
求出它是几位数
按正序分别输出每一位数字
按反序分别输出每一位数字
应准备以下数据进行测试:
要处理的数为1位正整数;
要处理的数为2位正整数;
要处理的数为3位正整数;
要处理的数为4位正整数;
除次之外,程序还应对不合法的输入作必要的处理。如以下情形:
输入负数;
输入的数超出4位(如12345)。
这是我自己写的代码
程序代码:#include <stdio.h>
int main(){
int a,x1,x2,x3,x4;
scanf("%d",&a);
if(a>=10000){
printf("错误");
return 0;
}
if(a>=1000){
x1=a/1000;x2=(a/100)%10;x3=(a/10)%100%10;x4=a%1000%100%10;
printf("4位数,第一位%d,第二位%d,第三位%d,第四位%d,倒序%d",x1,x2,x3,x4,x4*1000+x3*100+x2*10+x1);
}
else if(a>=100){
x1=a/100;x2=(a/10)%10;x3=a%100%10;
printf("3位数,第一位%d,第二位%d,第三位%d,倒序%d",x1,x2,x3,x3*100+x2*10+x1);
}
else if(a>=10){
x1=a/10;x2=a%10;
printf("二位数,第一位%d,第二位%d,倒序%d",x1,x2,x2*10+x1);
}
else if(a>=0)
printf("一位数,第一位%d,倒序%d",a,a);
else
printf("错误");
}求简短精炼








