求大神告诉小弟我原因,为什么输出的结果会是这样呢 ?按道理x[8]='\0'输出结果应该是1 9 9 4才对啊哪里出有关问题了,请详细说下,多谢!

求大神告诉我原因,为什么输出的结果会是这样呢 ?按道理x[8]='\0',输出结果应该是1 9 9 4才对啊,哪里出问题了,请详细说下,谢谢!!
#include <stdio.h>
#include <string.h>
void aaa(char x[10])
{int i;
for(i=strlen(x);i>0;i--)
{x[2*i-1]=x[i];
x[2*i-2]=' ';}printf("%s\n",x);}
void main()
{char a[10];
gets(a);
aaa(a);}求大神告诉小弟我原因,为什么输出的结果会是这样呢 ?按道理x[8]='\0'输出结果应该是1 9 9 4才对啊哪里出有关问题了,请详细说下,多谢!
------解决思路----------------------
x[10]的下标序号是从0开始的
------解决思路----------------------
#include <stdio.h>
#include <string.h>
void aaa(char x[10])
{
int i;
int len = strlen(x);
for(i=len - 1;i>=0;i--)
{
x[2*i+1]=x[i];

x[2*i]=' ';

}
x[2 * len] = 0;
printf("%s\n",x);}
void main()
{
char a[10];

gets(a);

aaa(a);
}


你那个写法x[0]取不出来的
另外数组小了,很容易越界
注意数组下标从0开始