/* Loesung der Aufgabe 1-17 (4 Aufl.), Aufgabe 1-15 (3.Aufl.)
   Inneres Produkt von zwei Vektoren berechnen */


#include <stdio.h>
#define NMAX 10

int main(void)
{
  double a[NMAX], b[NMAX];  /* die Vektoren        */
  double p;                 /* das skalare Produkt */
  int i, n;

  printf("Inneres Produkt zweier Vektoren\n");
  printf("Anzahl der Komponenten (Dimensionen) (<%2i) ? ", NMAX);
  scanf("%i", &n);
  printf("\nVektor a\n");
    for (i = 0; i < n; i++) {
    printf("a[%2i] = ", i+1); scanf("%lf", &a[i]);
  }
  printf("\nVektor b\n");
  for (i = 0; i < n; i++) {
    printf("b[%2i] = ", i+1); scanf("%lf", &b[i]);
  }

  p = 0.0;
  for (i = 0; i < n; i++)
    p = p + a[i]*b[i];

  printf("\nDas innere Produkt der Vektoren a und b ist %8.2f\n\n", p);

  /* eine Spielerei fur die Ausgabe */

  /*       12345      12345 */
  printf("/      \\   /      \\\n");
  for (i = 0; i < n/2; i++)
    printf("|%5.1f |   |%5.1f |\n", a[i], b[i]);
  printf("|%5.1f | * |%5.1f | = %5.1f\n", a[i], b[i], p);
  for (i++; i < n; i++)
    printf("|%5.1f |   |%5.1f |\n", a[i], b[i]);
  printf("\\      /   \\      /\n");

  return 0;
}