#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);
}
}
没有报错
你的算法不正确(逻辑上有错),计算这个一个循环就可以了(我们一般数以左边开始为第一位,也就是个位为第一位),程序简单如下:
#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
若要倒序,也有很多方法的
一周热门 更多>