【输入一个不多于5位数的正整数,输出它是几位数,逆序打出各位数字。】
下面是小弟写的一个程序,但是觉得有点儿臃肿了,希望各位大侠提供点儿改进思路,如果贴出自己的更好哈,谢谢了!#include<stdio.h>
#include<math.h>
int F(int);
void re_print(int);
int main(void)
{
int n;
printf("Please enter a number(n<=99999):\n");
while(scanf("%d",&n)!=1||n>99999) //这个是为了排除输入非数字或者六位数及以上的,但是当输入为字母的时候为什么会无限循环额?
{
printf("Please enter a number(n<=99999):\n");
}
printf("%d is %d_digit\n",n,F(n));
re_print(n);
printf("\n");
return 0;
}
//这个函数是判断为几位数的。
int F(int n)
{
int i,j;
for(i=1;i<=5;i++)
if((int)(n/pow(10,i))==0)
{
j=i;
break;
}
return j;
}
//这个函数是逆序输出的。
void re_print(int n)
{
int c;
if(n!=0)
{
c=n%10;
n=(int)(n/10);
printf("%d",c);
re_print(n);
}
}
[ 本帖最后由 zxd675816777 于 2012-2-8 22:30 编辑 ]