Look and say

main の第 2 引数を使いこなしたり puts の返値を利用したりできなかった私は、コードがスリムな人たちを見ていつも悔しい思いをしていました。ところが http://geocities.yahoo.co.jp/gl/nanagyou/view/20071208/1197121261 を読んだだけで、こんなにもスリムになることができたのです。
使用前 108 byte

char*p,*q;n=12;s;main(x,r){for(gets(r=&s);n--;)for(puts(p=r),q=r+=60;*++q=*p;q[-2]=x+48)p+=x=strspn(p,q++);}

使用後 102 byte

char*p,*q;main(n,r){for(gets(r);n++<13;)for(q=r+=puts(p=r);q[1]=*q=*p;p+=*q%4,q+=2)*q=48+strspn(p,q);}

というか、人の褌で相撲をとってすみません。