c语言把一个正整数的每位数存到数组中

#include <stdio.h>
#define N 10
main()
{
int a[N],n,i=0,j;
scanf("%d",&n);
while(n)
{
a[i]=n%10;
i++;
n/=10;
}
printf("%d \n",a[i]);
return 0;
}
哪里错了啊?

a[i]=n%10;
i++;
这两句可以写成一句话
a[i++]=n%10;

printf("%d \n",a[i]);
主要是这句错了,因为i没有变,加一个for循环
但是打印出来时反序的
但是用这个更好一些
while(i--)
printf("%d \n",a[i]);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-28
已改,看注释
#include <stdio.h>
#define N 10
int main() //int
{
int a[N],n,i=0,j;
scanf("%d",&n);
while(n)
{
a[i]=n%10;
i++;
n/=10;
}
for (j = i - 1; j >= 0; j--) //把数组的元素一个个打印出来
{
printf("%d",a[j]);
}
return 0;
}
第2个回答  2011-12-28
#include <stdio.h>
#define N 10
main()
{
int a[N],n,i=0,j;
scanf("%d",&n);
while(n)
{
a[i]=n%10;
i++;
n/=10;
}
while(i--)printf("%d\n",a[i]);
return 0;
}
//看看是不是你想要的
第3个回答  2011-12-28
求整数的绝对值 用 法: int abs(int i); 程序例: #include <stdio.h代码就不写了,你先把中间数保存到一个变量中,然后把这个数组排序,用升序
第4个回答  2020-03-30
首先要计算这个正整数有多少字节,然后就是每个字节8位。根据不同的环境下,int型占的字节数可能不一样。利用sizeof(int)可得到字节数