C语言的一个小问题
初学C语言,一个课后题,要求是输入一个小于等于五位的数字,然后输出这个数是几位数,每一位的数字是多少,再输出这个数的逆序数,比如输入123,输出3位数,百位1,十位2,个位3 ,逆序数为321.自己编的,有错误。。。希望帮忙改一下。。谢谢#include <stdio.h>
main()
{
int a,*b,*c,*d,*e,*f,g,h,i,j,k;
printf("输入一个<100000的正整数\n");
scanf("%d",&a);
if (a>99999) printf("重新输入\n");
else if (10000<=a&&a<99999) b=&a;
else if (1000<=a&&a<9999) c=&a;
else if (100<=a&&a<999) d=&a;
else if (10<=a&&a<99) e=&a;
else f=&a;
if (a=*b) printf("5位数\n");
else if (a=*c) printf("4位数\n");
else if (a=*d) printf("3位数\n");
else if (a=*e) printf("2位数\n");
else if (a=*f) printf("1位数\n");
if (a=*b)
{
g=(*b%10000); printf("万位上的数字为%d\n",g);
h=(*b-10000*g)%1000; printf("千位上的数字为%d\n",h);
i=(*b-10000*g-1000*h)%100; printf("百位上的数字为%d\n",i);
j=(*b-10000*g-1000*h-100*i)%10; printf("十位上的数字为%d\n",j);
k=(*b-10000*g-1000*h-100*i-10*j)%1; printf("个位上的数字为%d\n",k);
}
else if (a=*c)
{
h=*c%1000; printf("千位上的数字为%d\n",h);
i=(*c-1000*h)%10; printf("百位上的数字为%d\n",i);
j=(*c-1000*h-100*i)%10; printf("十位上的数字为%d\n",j);
k=(*c-1000*h-100*i-10*j)%1; printf("个位上的数字为%d\n",k);
}
else if (a=*d)
{
i=*d%100; printf("百位上的数字为%d\n",i);
j=(*d-100*i)%10; printf("十位上的数字为%d\n",j);
k=(*d-100*i-10*j)%1; printf("个位上的数字为%d\n",k);
}
else if (a=*e)
{
j=*e%10; printf("十位上的数字为%d\n",j);
k=(*e-10*j)%1; printf("个位上的数字为%d\n",k);
}
else if (a=*f)
{
k=*f%1; printf("个位上的数字为%d\n",k);
}
printf("逆序数字为%d%d%d%d%d\n",k,j,i,h,g);
return 0;
}