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();
}