这个代码还能在精简吗?
题目是:给一个不多于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("错误"); }
求简短精炼