質問: お世話になっております。 とあるプログラミング測定サイトでの回答提出前のコード実行結果で 分からない点があるので質問することにしました。 具体的には、C言語での提出のときにprintfがあるかないかによって 結果の数値が変わってしまうという現象です。下にキャプチャした 画像を載せます。 71行目のprintf文をコメントアウトする前(一番下に4と出力されてる) ![printf文をコメントアウトする前(一番下に4と出力されてる)](https://teratail.storage.googleapis.com/uploads/contributed_images/690ddba5c8f3e0b84630acb0ceabf473.jpeg) 71行目のprintf文をコメントアウトしてコメントアウトする前と違う数値が出力されてる画面(7と出力されてる) ![printf文をコメントアウトしてコメントアウトする前と違う数値が出力されてる画面(7と出力されてる)](https://teratail.storage.googleapis.com/uploads/contributed_images/2f8815fbf1abc383689ff2389f510548.jpeg) 71行目のprintf文をコメントアウトしているかしていないかの違い だけですが、アウトプットされる数値が4から7へと変化してしま います。 なぜこのような現象が起こるのか見当がつきませんが、どなたか お分かりになる方いますでしょうか? よろしくお願いいたします。
回答: こんにちは。 何がアウトプットされるか分からないので確定的ではありませんが、もし、returnで返却する値がアウトプットされるのであれば、return文を実行していない(flagが1でない)のではないでしょうか? printf()するとreturnした時と同じ状態にたまたま一致して、一見適切に動いているかのように見えることもあると思います。