#include<stdio.h>
void main()
{
int i,b,c,count=0;
scanf("%d",&b);
c=b;
while(c>0)
{
c/=10;
count++;
}//输入一个整数,求其位数
int a[10]={0};
for(i=0;i<count;i++)
{
a[i]=b%10;
printf("%d",a[i]);
b/=10;
}//将整数分解存进数组
}
初学者,希望能详细说明一下错误的地方,谢谢
while循环中将各个数存放在一维数组中。
#include<stdio.h>
int main()
{
int i,c,count=0;
int a[10]={0};
scanf("%d",&c);
while(c>0)
{
a[count++]=c%10;
c/=10;
}//输入一个整数,求其位数
for(i=0;i<count;i++)
{
printf("%d",a[i]);
}//逆序输出
return 0;
}
你这是颠倒顺序的代码
for(i=0;i<count;i++)
{
a[i]=b/pow(10.0,count-i-1);
printf("%d",a[i]);
b %= (int)pow(10.0,count-i-1);
}//将整数分解存进数组