質問: 初投稿でC言語も初心者です。 ヘロンの公式を作っています。 ソースコードはVisual Studio Codeで書いたものをgccでコンパイルしています。 三角形の3辺を足して2で割った値よりも1つでも1辺が大きいとエラーが出ます。 ### 発生している問題・エラーメッセージ ``` エラーメッセージ -1.#IND00 ``` ### 該当のソースコード ``` #include #include double heron(int, int, int); int main(void){ int a, b, c; scanf("%d%d%d", &a, &b, &c); printf("%4f", heron(a, b, c)); return 0; } double heron(int a, int b, int c){ double s; s=(a+b+c)/2; return sqrt(s*(s-a)*(s-b)*(s-c)); } ``` マイナスの数が途中で計算されてもしっかり値が返ってくる方法はありますか? ご回答のほど宜しくお願いいたします。
回答: こんにちは。 > > 三角形の3辺を足して2で割った値よりも1つでも1辺が大きいとエラーが出ます。 > > > その条件は三角形にならないケースではありませんか? ヘロンの公式は三角形の面積を求めるものですから、三角形にならない場合は計算できなくても可笑しくないと思います。 ↓などを参考に事前にチェックしては如何でしょうか? 三角形の成立条件とその証明