c语言自学者,遇到问题,请高手帮忙,谢谢!
给一个不多于5位的正整数,要求:1\求出它是几位数;2\分别打印出每一位数字;3\按逆序打印出各位数字,例如原数为321,应输出123.请尽快帮助我解决问题,谢谢!
/******************************************************************************* 给一个不多于5位的正整数,要求:1\求出它是几位数; 2\分别打印出每一位数字;3\按逆序打印出各位数字,例如 原数为321,应输出123. *******************************************************************************/ #include<stdio.h> #include<string.h> int main(void) { long a; printf("input a:\n"); scanf("%ld",&a); if(a-100000<0&&a-9999>0) printf("这是一个5位数.\n万位:%ld\n千位:%ld\n百位:%ld\n十位:%ld\n" "个位:%ld\n逆序:%ld%ld%ld%ld%ld\n", a/10000, (a/1000)%10, (a/100)%10, (a/10)%10, a%10, a%10,(a/10)%10,(a/100)%10,(a/1000)%10,a/10000); else if(a-10000<0&&a-999>0) printf("这是一个4位数.\n千位:%ld\n百位:%ld\n" "十位:%ld\n个位:%ld\n逆序:%ld%ld%ld%ld\n", a/1000, (a/100)%10, (a/10)%10, a%10, a%10,(a/10)%10,(a/100)%10,a/1000); else if(a-1000<0&&a-99>0) printf("这是一个3位数.\n百位:%ld\n十位:%ld\n" "个位:%ld\n逆序:%ld%ld%ld\n", a/100, (a/10)%10, a%10, a%10,(a/10)%10,a/100); else if(a-100<0&&a-9>0) printf("这是个2位数.\n十位:%ld\n个位%ld\n逆序%ld%ld\n", a/10, a%10, a%10,a/10); else if(a-10<0&&a>=0) printf("这是个1位数,%ld",a); getch(); }