哪位大神看看我这程序那错了,为什么出来总是无限循环0000000

程序如下#include<stdio.h>#include<math.h>voidmain(){inti,n,r,m;printf("Pleaseinputanumber... 程序如下
#include<stdio.h>
#include<math.h>
void main()
{
int i,n,r,m;

printf("Please input a number:");
scanf("%d",&n);
printf("please input how many count:");
scanf("%d",&m);
r=n/(pow(10,m));
while(r<=n)
{

i=r%10;
r=r*10;
printf("%d\t",i);
}
}

程序要求:输入一个整数,从高位开始逐位分割并输出它的各位数字。
展开
 我来答
aiyongyyy
2012-11-24 · TA获得超过148个赞
知道小有建树答主
回答量:189
采纳率:100%
帮助的人:123万
展开全部
while循环改一改
while(r>=1)
{

i=r%10;
r=r/10;
printf("%d\t",i);
}
}
追问
不对啊,要求是按顺序分割,我是先除,让他小于10,得出最高位,然后再一个个乘上去的
追答
比如输入n = 1234, m=2
一开始r = 12
i = r%10 = 2, 然后r*10 = 120, i = r%10 = 0, 以后i就一直是0了, r应该除以10

我得到的是从低位到高位的 要存储在数组中最后输出从高位到低位的
int i[100];
int j = 0;
while(r>=1)
{
i[j] = r%10;
r=r/10;
j++;
}
for (j=0;j<m;j++)
{
printf("%d\t",i[j]);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式