ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

社情の絆〜情報処理編〜コミュの<解答>演習問題9

  • mixiチェック
  • このエントリーをはてなブックマークに追加
本日7/4の演習問題[9]の解答例です。

> [9] 関数(2)
>  3次元ベクトルを、要素が実数の1次元配列で表すものとする。2つの3
> 次元ベクトルの配列を第1、第2引数として受け取り、それぞれのベクトル
> の大きさを第3、第4引数に、内積を戻り値として返す関数を作成する。こ
> の関数を用い、2つのベクトルを入力して、それらの大きさと内積を表示せ
> よ。

#include <stdio.h>
#include <conio.h>
#include <math.h>
#define N 3

double vector_calc(double a[], double b[], double *alen, double *blen);

int main(void ){
double q[N], r[N], pr, zq, zr;
int i;
printf("ベクトル#1 >> ");
for(i=0;i<3; i++) scanf("%lf",&q[i]);
printf("ベクトル#2 >> ");
for(i=0;i<3; i++) scanf("%lf",&r[i]);
pr = vector_calc(q, r, &zq, &zr);
printf("ベクトル#1の大きさ = %.3f\n", zq);
printf("ベクトル#2の大きさ = %.3f\n", zr);
printf("内積 = %.3f\n", pr);
getch();
return 0;
}

double vector_calc(double a[], double b[], double *alen, double *blen){
int p, asum, bsum, i;
p = 0.0;
asum = 0.0;
bsum = 0.0;
for(i=0;i<N; i++){
asum += a[i] * a[i];
bsum += b[i] * b[i];
p += a[i] * b[i];
}
*alen = sqrt(asum);
*blen = sqrt(bsum);
return p;
}

コメント(0)

mixiユーザー
ログインしてコメントしよう!

社情の絆〜情報処理編〜 更新情報

社情の絆〜情報処理編〜のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング