練習 [10] ポインタ①(1/5)

練習 1(提出プログラム名:p1001a.c)

まず,このプログラム(p1001a.c)をダウンロードしなさい.
p1001a.c では int 型変数として x, double 型変数として y を用意し,
さらにはそれらを参照するためのポインタ変数 p, q を用意している.

このプログラムでやろうとしていることは単純であり,
xy の 2 乗よりも大きいかどうかを判定して実行例のように出力させるだけである.

講義資料を参考にして,p1001a.c を実行例のように実行できるプログラムに仕上げなさい.
ただし,main 関数の冒頭部分にある p = &x;q = &y; を除き,
それより下で xy を使ってはいけません.他の変数を追加してもいけません.
すべてポインタ p, q を使って目的の処理を行いなさい

【ヒント】
例えば, x と書きたいところは (*p) が代わりになり,
&x と書きたいところは p が代わりになります.

&(*p) と書いても &x の代わりにはなりますが,記述としては無駄が多いです.
そもそも p には x の番地を格納しているわけなので,p と書くだけで目的を達成できます.
変数 y とポインタ q の関係についても同様です.

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
整数 x と実数 y を入力してください:2 1.4142
x = 2
y = 1.414200

y^2 = 1.999962
x > y^2
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
整数 x と実数 y を入力してください:2 1.4143
x = 2
y = 1.414300

y^2 = 2.000244
x <= y^2

【過去にあったミス(減点となり,やり直しを命じられる)】
2 種類の実行例を確認せずに提出してしまっている.
■ 注意書きを見落としていて,ポインタを使っていない
ヒントを見落としていて x&x の代わりを適切に書けていない
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 練習2 (p1002a.c) ]