Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
int reverse(int); void main() { int no =5; reverse(no); } int reverse(int no) { if(no == 0) return 0; else printf("%d",no); reverse(no--); }
このプログラムは無限ループに陥ります。目的の出力を取得できません。望ましい出力は 5 4 3 2 1. よろしくお願いします
でポストデクリメント演算子を使用していますno。これは最初に の値を取得し、それをno式の値として使用してから減分します(減分されていない値を式の値として引き続き使用します)。おそらく、または だけを使用したいでしょう。(前者は を変更しますが、後者は変更しませんが、それ以降は が参照されないため問題ありません。)no--nono - 1nono
no
--no
no - 1