C/C++の宿題片付けます 151代目

このエントリーをはてなブックマークに追加
423 ◆QZaw55cn4c
>>420
バグ調査の労、重ね重ね感謝いたします。以下の点修正いたします。
・バッファオーバーランの可能性を排除しました。
・プログラム内にて 0 割り自体は発生しませんが、1/0 という分母が 0 の形で出力していました。今回演算処理中に 0 割りが発生した場合は、その旨表示するようにしました。
・仕様上、内部表現の分数表現の分子・分母それぞれに上限があります。(int 型 4 バイトに 2 つの整数を押し込んでいる以上仕方ありません。)
ただし、式評価の最中にその上限を超える可能性が発生した場合にエラー表示を出力しておりませんでしたので、今回エラーを出力するようにいたしました。
なお、その上限とは 16782 です。

http://codepad.org/9MSpIXlt

なお、本プログラムは再帰呼び出しにて記述しておりますので、以上の対策をとっていても入力によっては暴走等異常が発生する可能性があります。
プログラムのバグを報告していただく際には、プログラムに与えた入力と実行ファイル生成時に設定したスタックサイズをあわせてご連絡いただければ幸いです。
よろしくお願いいたします。