这个程序等不到我想要的结果 求帮忙 C语言

#include <stdio.h>
int main ()
{
   int a,b,c,d,e,f;
   printf("本程序可以输出这个数字的位数和各个位的数字!!! ");
   printf("请输入一个数字:");
   scanf("%d",&a);
   f=a;
   for (b=1;a>=10;b++)
   {
   a=a/10;
   }
 for (c=0;c<b;c++)
 {
   d=d*10;
 }
 for (c=b;c>0;c--)
 {
     e=f/d;
     d=d/10;
     printf("这个数的第%d位是%d",c,e);
     
     }
   }

没有报错



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1个回答

你的算法不正确(逻辑上有错),计算这个一个循环就可以了(我们一般数以左边开始为第一位,也就是个位为第一位),程序简单如下:

#include <stdio.h>
int main()
{
   int a, b, c, d, e, f;
   printf("本程序可以输出这个数字的位数和各个位的数字!!! ");
   printf("请输入一个数字:");
   scanf("%d", &a);
   b = 1;
   while(a)
   {
       printf("这个数的第%d位是%d ", b++, a % 10);
       a /= 10;
   }
}

输入

123

输出

这个数的第1位是3
这个数的第2位是2
这个数的第3位是1
若要倒序,也有很多方法的


发布于 2017-02-20 23:30
查看更多
外卖券领取

相关问题

支持语音或者文本回复

语音最长一分钟

点击录音开始,最短不低于3秒