c语言正序输出每个数字 5

#include<stdio.h>#include<math.h>main(){printf("pleaseinputanumberbelow6numbers:");in... #include<stdio.h>
#include<math.h>
main()
{
printf("please input a number below 6 numbers:");
int n;
scanf("%d",&n);
int a=10,b=1;
while((n/a)>=1)
{
a=a*10;
b++;
}
if(b>5)printf("below 6 numbers!");
else printf("This is a %d numbers number\n",b);
for(;n>0;)
{
printf("%d ",n%10);
n = n/ 10;
}
printf("\n");
for(;n>0,b>0;)
{
printf("%d ",n/pow(10,b));
n=n-pow(10,b);
b--;
}
printf("\n");
}
就正序的时候不对,我的思路是用原数/刚才求到的位数b,然后减掉pow(10,b),b--,依次求下一位,但输出全是0,怎么回事、、
展开
 我来答
百度网友6b264c8
2013-03-25 · TA获得超过288个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:210万
展开全部
#include<stdio.h>
#include<math.h>
main()
{
printf("please input a number below 6 numbers:");
int n;
scanf("%d",&n);
int a=10,b=1;
while((n/a)>=1)
{
a=a*10;
b++;
}
if(b>5)printf("below 6 numbers!");
else printf("This is a %d numbers number\n",b);
// 加一个int m=n;
for(;n>0;)
{
printf("%d ",n%10);
n = n/ 10;
} // 这个for循环改成
for(;m>0;)
{
printf("%d ",m%10);
m = m/ 10;
}

printf("\n");
for(;n>0,b>0;)
{
printf("%d ",n/pow(10,b));
n=n-pow(10,b);
b--;
}
printf("\n");
}

先试试?
追问
还是不行呢,正序全是负的很大的数
yequnanren
2013-03-25 · 超过33用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:72.5万
展开全部
这样试试

#include <stdio.h>

int main()
{
int n;
int a = 0, b = 0;

printf("please input a number below 6 numbers:");
scanf("%d",&n);

a = n;
while(0 < a)
{
a /= 10;
b++;
}
if(b>6)
{
printf("below 6 numbers!");
}
else
{
printf("This is a %d numbers number\n", b);
}
a = n;
while(0 < a)
{
printf("%d ", a%10);
a /= 10;
}

printf("\n");

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式