あまりいぢってる暇の無いまま終わりました。
僕のコードは
char*p;
main(a){
for(gets(&a);p&&*p||~-puts(p=&a);)
*p++=p[1]?abs(*p-p[1])+48:0;
}
Topのhinoeさんは
main(a,p)
char*p;
{
for(;*++p||!gets(p=&a)-puts();)
*p=p[1]?abs(p[1]-*p)+48:0;
}
ぱっと見、一番違うところはgetsの位置。
この問題では入力は一行だけなので二回目以降のgetsの返り値はnullになるので
出力が一文字だったときに終了ということになりますね。
あとは*pをmain第二引数に当てることで初回の判定を削ってます。
ちなみにinaniwaさんの改良版ではt=p[1]とすることで文字数を削ってます。
これ、一度試してたはずなんだけど、なんでやめちゃったんだっけなぁ?^^;;
0 件のコメント:
コメントを投稿