#include
#include
int main()
{
int a;
scanf("%d",&a);
int z,i;//判断位数
for(i=5;i>0;i--)
{
i=pow(10,i-1);
if(a/i!=0)
{
z=i;
break;
}
}
printf("%d\n",z);
int x[z];//判断各位数字
for(i=z;i>0;i--)
{
i=pow(10,i-1);
x[i]=a/i;
printf("%d ",x[i]);
}
printf("\n");
for(i=1;i<=z;i++)//逆序输出
{
printf("%d ",x[i]);
}
return 0;
}
关键的问题是你的z=i那句话用错了。我猜你意图z也是个整数位数序号值,但它实际上已经是10为底的幂值,相对的个很大的值。i=pow(10,i-1)改为j=pow(10,i-1),if(a/j!=0)…等等相应调整就好了
问问题记住,要把题目贴出来,你想干嘛,还有就是代码贴正确。
估计你是要输入一个整数,逆序输出?比如输入123,输出321。
#include <stdio.h>
int main(void) {
// your code goes here
int n;
scanf("%d", &n);
while (n)
{
printf("%d", n % 10);
n /= 10;
}
printf("\n");
return 0;
}