- ベストアンサー
情報処理のポインタ渡しによる関数作成方法
- 3次元ベクトルの外積計算をするプログラムを作成中です。
- 3次元ベクトルは3成分の配列として扱い、ポインタ渡しを使用して外積計算を行う関数を作成します。
- main関数内で2つの3次元ベクトルを設定し、作成した関数を呼び出して入力ベクトルとその外積を表示します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
少しは学習努力を提示すべきです。 http://yosshy.sansu.org/gaiseki.htm #include <stdio.h> struct vector { float x; float y; float z; }; //使用関数のプロトタイプ宣言 void cross_product(struct vector *a, struct vector *b, struct vector *c); int main(void) { //入力である2つの3次元ベクトル(実数値)を設定 struct vector a={1.0, 2.0, 1.0}; struct vector b={-2.0, 0.5, 1.0}; struct vector c; //入力ベクトルを表示 printf("vector a(%f, %f, %f)\n", a.x, a.y, a.z); printf("vector b(%f, %f, %f)\n", b.x, b.y, b.z); //外積計算の関数をコール cross_product(&a, &b, &c); //外積を表示 printf("cross product c(%f, %f, %f)\n", c.x, c.y, c.z); return 0; } //何も値を返さない void型関数 void cross_product(struct vector *a, struct vector *b, struct vector *c) { c->x = a->y * b->z - b->y * a->z; c->y = a->z * b->x - b->z * a->x; c->z = a->x * b->y - b->x * a->y; }
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
「どうもうまく作れない」ってことは, 「それっぽいものを作っているつもりなんだけど正しい動作をしない」ってこと? もしそうなら, そのプログラムを出して突っ込まれた方が勉強になるんじゃないかなぁ.