大哥儿们帮忙看个算法!

大哥们帮忙看个算法!!
程序目的是为了输入一个字符串,,然后给字符串中的每一个字符之间添加空格,,大哥们抽一小点时间帮忙看看算法哪里有错!小弟感激不敬!!
#include<stdio.h>
int main()
{char a[81],b,
 int x,t,d;
 gets(a);
 for(x=0;a[x]!='\0';x++)
 {}
 t=x-1;
 d=x-1;

 for(;t>0;t--)
 {  a[2*t]=a[t];
    a[2*t-1]=' ';'
   a[t]=' ';
 }

a[d+d+1]='\0';



 puts(a);










}
C 算法

------解决方案--------------------
#include<stdio.h>
int main()
{
char a[81],b;
  int x,t,d;
  gets(a);
  for(x=0;a[x]!='\0';x++)
  {}
  t=x-1;
  d=x-1;

  for(;t>0;t--)
  { 
 a[2*t]=a[t];
     a[2*t-1]=' ';
    a[t]=' ';
 }

a[d+d+1]='\0';

  puts(a);
}

运行结果:
大哥儿们帮忙看个算法!
------解决方案--------------------
这个代码在vs2010下能得到正确结果。