/* キーボードから平面上の点 (x, y) とその平行移動の値 (tx, ty) を入力して、 平行移動後の点の位置を求める関数 translate() 関数を、ポインタを使って定義せ よ。ただし、x, y, tx, ty は整数とし、実行例のように出力するプログラムを作成 せよ。 【注】点 (x, y) を (tx, ty) だけ平行移動すると、移動後の点の座標は、 (x + tx, y + ty) となる。 */ #include // ポインタを使って値を直接書き換える関数 // px, py は座標のアドレスを受け取るポインタ void translate([ ア ], int tx, int ty){ // ポインタが指し示す先の値を更新する *px = *px + tx; *py = *py + ty; } int main(void){ int x, y; int tx, ty; printf("位置 (x, y) の値を入力してください。\n"); scanf("%d %d", &x, &y); printf("平行移動量を入力してください。\n"); scanf("%d %d", &tx, &ty); // 変数x, yのアドレス(&x, &y)を関数に渡す translate([ イ ], tx, ty); printf("新しい位置は (%d, %d) となりました。\n", x, y); return 0; }