以前のリビジョンの文書です


演習課題 ex05-6.c

キーボードから三角形の各辺の長さ a, b, c を実数値として入力すると、この三角形が直角三角形であるかどうかを判定するプログラム ex05-6.c を作成し、kiso2コマンドを用いて提出しなさい。 ただし、a, b, c の値のいずれかが正の値でない場合、あるいは、三角形を構成できない組み合わせ(たとえば、$a=1, b=2, c=3)が入力された場合は、「三角形が構成できない」と出力するものとする。

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex05$ ./ex05-6
a b c? 3 2 1
三角形ではない
t180900@s01cd0542-160:~/kiso2-2018/ex05$ ./ex05-6
a b c? 2 1 0
三角形ではない
t180900@s01cd0542-160:~/kiso2-2018/ex05$ ./ex05-6
a b c? 2 3 4
直角三角形ではない
t180900@s01cd0542-160:~/kiso2-2018/ex05$ ./ex05-6
a b c? 3 4 5
直角三角形である
t180900@s01cd0542-160:~/kiso2-2018/ex05$ ./ex05-6
a b c? 1 2.3 2.4
直角三角形ではない
t180900@s01cd0542-160:~/kiso2-2018/ex05$ ./ex05-6
a b c? 6.3 8.4 10.5
直角三角形である

a, b, c の3つの辺の長さが与えられたとき、この三角形が直角三角形となる条件は次のいずれかである。

  1. $a^2 = b^2 + c^2$ または、$b^2 = c^2 + a^2$ または、$c^2 = a^2 + b^2$ - もっとも大きな値を //a// としたとき、$a^2 = b^2 + c^2$

変数の値の交換

左右ぞれぞれの手に中身の入った熱いラーメンどんぶりを一つずつもっていると想像してみてください。 左右のどんぶりを持ち替えようとしたとき、アクロバティックな方法(どんぶりを宙に放ったり)を取らない限り、2つの熱いどんぶりを同時に交換することはできません。 オーソドックスには、いったん片方のどんぶりをテーブルの上に置き、もう一つのどんぶりを持ち替え、最後に空いた方の手で一旦テーブルに置いたどんぶりを持つ、といった方法で持ち替えると思います。

変数 x の値と、変数 y の値を交換する
int x, y, buf;
x = 1;
y = 2;
 
buf = x;      // x の値をいったん buf に代入
// x = 1, y = 2, buf = 1
 
x = y;        // y の値を x に代入(x の値は上書きされる)
// x = 2, y = 2, buf = 1
 
y = buf;     // buf にある元の x の値を y に代入
// x = 2, y = 1, buf = 1
  • lecture/kiso2/ex/ex05-6.c.1539861526.txt.gz
  • 最終更新: 2018/10/18 20:18
  • by sano