C语言中如何把一个输入的整数插入数组

int x;

char a[10];
scanf("%d",x);
我输入的X是400,现在如何把400插入a ? 使得插入后的结果是a[0]=4, a[1]=0 a[2]=0

你定义了一个整形变量和一个字符数组变量!想将整形数字放到a[]里去那么要进行类型转换,不然会将数字400以ASCII码输出!
#include"stdio.h"
#define N 10
void main()
{
int x;
char a[N];
printf("请输入一个整数\n");
scanf("%d",&x);
a[N]=x;
printf("a中的数值是%d\nx中的数值是%d\n",a,x);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-15
int i=0,j=x; 
for(i=0;;i++)        //计算x的位数
{
     if(j/10==0)
        break;       
}
for(;i>=0;i--)        //拆分x放入a
{
    a[i] = x%10;
    x=x/10;   
}

第2个回答  2013-06-15
int x=400;
char a[10],ch[3];
itoa(x,ch,10);//将整数400转换成字符串(三个元素)
memcpy(a,ch,3);
第3个回答  2013-06-15
为什么要把输入赋给整形变量然后再转换成字符呢?感觉是舍近求远。用scanf(“%s”,a)不就行了么.
第4个回答  2013-06-15
scanf语句就错了少了&
a[0]=x/100;
a[1]=x/10%10;
a[2]=x%10;
这样就好了啊
具体有待修改