3.11.2 prog10.c

ベクトルのサイズ N が事前に分かっていて、小さい場合。


/*
 * prog10.c --- 配列
 *   コンパイルするには、たとえば gcc -o prog10 prog10.c
 */

#include <stdio.h>

#define N (3)

/* n 次元のベクトル x, y の内積を計算する */
double inner_product(double x[], double y[], int n)
{
  int i;
  double s;
  s = 0.0;
  for (i = 0; i < n; i++)
    s += x[i] * y[i];
  return s;
}

int main(void)
{
  int i;
  double a[N], b[N];

  printf("二つの %d 次元ベクトルの内積を計算します。\n", N);

  printf("一つ目のベクトル a の入力\n");
  for (i = 0; i < N; i++) {
    printf(" %d 番目の成分=", i + 1); scanf("%lf", &a[i]);
  }

  printf("二つ目のベクトル b の入力\n");
  for (i = 0; i < N; i++) {
    printf(" %d 番目の成分=", i + 1); scanf("%lf", &b[i]);
  }

  printf("内積=%g\n", inner_product(a, b, N));
  return 0;
}



桂田 祐史