初学C 求助题目:给出一个不多于5位数的正整数,要求:求出他是几位数,分别输出每一位数字。。 求简单方法
题目:给出一个不多于5位数的正整数,要求:求出他是几位数,分别输出每一位数字。。我刚学的C 只学了到 if和switch 这2个东西
我写了一下好复杂 有简单的不 还有一个问题 a,b,c,d,e 不设long 数据算出来就不对。
main()
{int g;
long f,b,a,c,d,e;
scanf ("%ld",&f);
if (f<100000&&f>9999) g=5, printf("该数是%d位数\n",g) ;
else if (f<10000&&f>999) g=4, printf("该数是%d位数%d\n",g);
else if (f<1000&&f>99) g=3, printf("该数是%d位数%d\n",g) ;
else if (f<100&&f>9) g=2, printf("该数是%d位数%d\n",g);
else if (f<10&&f>=0) g=1 , printf("该数是%d位数%d\n",g);
else printf ("不是5位数正整数\n") ;
printf ("该%d数分别是\n",g ) ;
switch(g)
{ case 5:a=f/10000;
printf("%d\n",a) ;
b=(f-a*10000)/1000;
printf("%d\n",b);
c=(f-a*10000-b*1000)/100 ;
printf("%d\n",c);
d=(f-a*10000-b*1000-c*100)/10;
printf("%d\n",d);
e=f-a*10000-b*1000-c*100-d*10;
printf("%d\n",e); break;
case 4:a=f/1000,
printf("%d\n",a) ;
b=(f-a*1000)/100;
printf("%d\n",b);
c=(f-a*1000-b*100)/10 ;
printf("%d\n",c);
d=f-a*1000-b*100-c*10;
printf("%d\n",d); break;
...(case 3.. case 2 case 1 省略?...........
}}
[[it] 本帖最后由 liusf1988 于 2008-12-1 21:09 编辑 [/it]]