********************************************
int sankaku(double a,double b,double c){
double s,s2;
int flag=0;
s = a+b+c
s /= 2.0;
s2 = s*(s-a)*(s-b)*(s-c);
if(s2 <= 0.0) return(-1);
if(a==b)flag++;
if(b==c)flag++;
if(c==a)flag++;
return (flag);
}
********************************************
三角形の問題です。(*引数a,b,cは三角形の三辺の長さ(正値)を与えるの)
(1)戻り値(return value)が「-1」である場合何を意味するか
(2)二等辺三角形の場合の戻り値
(3)正三角形の場合の戻り値
についてお願いします。
No.1ベストアンサー
- 回答日時:
(1)
if(s2 <= 0.0) return(-1);
から、s2<=0.0となる場合です。
…なんて書くと石が飛んできそうな気がするので、s2の計算を見てみます。
s = a+b+c;
s /= 2.0;
s2 = s*(s-a)*(s-b)*(s-c);
となっていますね。a,b,cは正ですからs2計算時のsも正になります。
したがって、s2<=0.0が成り立つにはs-a<=0.0かs-b<=0.0かs-c<=0.0が成り立つ必要があります。
s = a+b+c;s /= 2.0;ですから、s2<=0.0が成り立つには(-a+b+c)/2<=0.0か(a-b+c)/2<=0.0か(a+b-c)/2<=0.0、すなわち、b+c<=aかa+c<=bかa+b<=cが成り立つ必要があります。
これは、3角形の3辺とはならない値が関数に与えられたことを表します。
(2)、(3)
if(a==b)flag++;
if(b==c)flag++;
if(c==a)flag++;
の部分は、各辺のうち長さが一致する辺の個数を数えています。
したがって、二等辺三角形の場合は1、正三角形の場合は3が戻り値となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# ある線が円の範囲に入っているかの計算 1 2022/12/07 16:14
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# C言語のマクローリン展開ローラン展開のコードについて 3 2022/12/15 14:45
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語で、繰り返し文の中で、0....
-
プログラムでの数字につく”f”の...
-
C言語のプログラムで#include<m...
-
C言語で直角三角形の斜辺を求め...
-
float型とdouble型の変数の違い...
-
Cで3乗根を求める方法
-
C言語初心者 構造体 課題について
-
2分法で方程式の複数の解を自...
-
至急です! マクロ定義で #defi...
-
doubleの変数にintとintの割り...
-
C言語を実行すると-infが出てき...
-
doubleは常に%lfとするべきなのか
-
浮動小数点数が表示されないん...
-
difftime()について
-
関数におけるif文とreturn文に...
-
C++で外積
-
(C,C++言語)関数の引数は自動キ...
-
C言語で表記についの質問です
-
数値を指数部と仮数部に分離したい
-
方程式を2分法を用いて解くプロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
C 開放してるのにエラー(doubl...
-
Cで3乗根を求める方法
-
float型とdouble型の変数の違い...
-
至急です! マクロ定義で #defi...
-
C言語の型による処理速度の違い
-
int とdoubleの比較
-
関数におけるif文とreturn文に...
-
C言語初心者 構造体 課題について
-
c言語のコンパイルエラー canno...
-
C言語 関数プロトタイプ宣言の...
-
C言語を実行すると-infが出てき...
-
float?数字の後にLがつくもの
-
数値を指数部と仮数部に分離したい
-
difftime()について
-
浮動小数点数が表示されないん...
-
たくさんの数の平均を求める方...
-
DWORDの警告
-
-1.#IND00と出てしまうのですが...
おすすめ情報