标题:【输入一个不多于5位数的正整数,输出它是几位数,逆序打出各位数字。】
取消只看楼主
zxd675816777
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:252
专家分:631
注 册:2012-2-3
结帖率:80%
已结贴  问题点数:20 回复次数:2 
【输入一个不多于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 编辑 ]
搜索更多相关主题的帖子: void 字母 include number 正整数 
2012-02-08 20:21
zxd675816777
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:252
专家分:631
注 册:2012-2-3
得分:0 
还有就是,当输入一较大的数的时候,会发生运行错误,因为学的基础不是很好,希望大家能讲讲额。
下面是运行的一个界面。

数学好难!
2012-02-08 20:54
zxd675816777
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:252
专家分:631
注 册:2012-2-3
得分:0 
回复 3楼 回首依依
谢谢你哈,那个程序实现范围内的时候可以很好解决,但是如果用户输入大于六位或者是字符的时候就不能很好的提示返回输入了额。。。

数学好难!
2012-02-08 22:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-360606-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.341669 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved