关于SWITCH和IF的简单题
题目如下,代码我已经编出来了(我初学可能编的麻烦)大家有没有更好的办法在少改原代码的基础上,改进一下,只用"IF"和"SWITCH"来编
输入一下不多于5位的正整数,1.分别打印出每一位的数字
#include <math.h>
main()
{
unsigned long a,b,c,d,e,f;
scanf("%ld",&a);
if(a<=99999&&a>=10000)
{b=a/10000;c=(a%10000-a%1000)/1000;d=(a%1000-a%100)/100;e=(a%100-a%10)/10;f=a%10;
printf("%ld,%ld,%ld,%ld,%ld",b,c,d,e,f);}
if(a<=9999&&a>=1000)
{b=a/1000;c=(a%1000-a%100)/100;d=(a%100-a%10)/10;e=a%10;
printf("%ld,%ld,%ld,%ld",b,c,d,e);}
if(a<=999&&a>=100)
{b=a/100;c=(a%100-a%10)/10;d=a%10;
printf("%ld,%ld,%ld",b,c,d);}
if(a<=99&&a>=10)
{b=a/10;c=a%10;
printf("%ld,%ld",b,c);}
if(a<=9&&a>=1)
printf("%ld",a);
}
2,按逆序打印出各位的数字,比如567输出为785我的代码;
#include <stdio.h>
main()
{
unsigned long a,b,c,d,e,f;
printf("input a");
scanf("%ld",&a);
if(a<=9&&a>=1)printf("%d",a);
else if(a<=99&&a>=10){b=a%10;c=a/10;
printf("%ld,%ld",b,c);}
else if(a<=999&&a>=100)
{b=a%10;c=(a%100-a%10)/10;d=a/100;
printf("%ld,%ld,%ld",b,c,d);}
else if(a<=9999&&a>=1000)
{b=a%10;c=(a%100-a%10)/10;d=(a%1000-a%100)/100;e=a/1000;
printf("%ld,%ld,%ld,%ld",b,c,d,e);}
else if(a<=99999&&a>=10000)
{b=a%10;c=(a%100-a%10)/10;d=(a%1000-a%100)/100;e=(a%10000-a%1000)/1000;f=a/10000;
printf("%ld,%ld,%ld,%ld,%ld",b,c,d,e,f);}
}
另外还有一题明天再加!