他者に「なぜ」とか言い出す前に,
「何を」やっているのかを説明すべきではあるまいか?
> 文字列を入力し、それを逆にしたものを表示したい
という話において,nなる値を入力させていることは完全に意味不明である. nとは何なのか?
nが何らかの役割を持つのであれば,
「文字列と整数値(n)とを入力し,…(何かしらnの値に基づいた処理がどうのこうの)」
とか何とか正確に述べよ.
(「まともに動いてないコード」だけから「何らかのまともな意味」を察しろ,というのは無理があるとは思わないのか?)
おそらく主たる処理の実装部に該当すると思われる for の箇所で何をやってるのか(やっているつもりなのか)に関する説明も不可欠だ.
「何を」とは,すなわち,あなたが採用しているアルゴリズムを説明せよ,という意味だ.
読み手はあなたと同様の天才とは限らないのだから,いきなり
コード:
moji1[i]=moji2[n-1-i] ;
とかいう,せっかく入力した moji1 の一部を,未初期化と見える moji2 の一部に書き換えてしまうことの 意味/意義/正当性/etc を把握することは極めて困難だったりするからだ.
---
まとめると,
・本当はどんな処理をやるという話なのか? というのがわからんし,
・それに対してあなたがどんなアルゴリズムを実装しているつもりなのか? というのもわからん.
なので,まともな説明が必要と見える.