#include <stdio.h>
#include <math.h>

double norm(double p, int n, double *a) {
  int i;
  double r;
  r = 0.0;
  for (i = 0; i < n; i++)
    r += fabs(pow(a[i], p));
  return pow(r, 1.0 / p);
}

int main() {
  double a[] = { 0.5, -0.5 };
  double b[] = { 1.0, 1.0, 1.0, 1.0, 1.0 };
  double c[] = { -1.0, 2.0, 0.0, 3.0 };
  printf("%f\n", norm(1.0, sizeof(a) / sizeof(double), a));
  printf("%f\n", norm(1.0, sizeof(b) / sizeof(double), b));
  printf("%f\n", norm(1.0, sizeof(c) / sizeof(double), c));
  putchar('\n');
  printf("%f\n", norm(2.0, sizeof(a) / sizeof(double), a));
  printf("%f\n", norm(2.0, sizeof(b) / sizeof(double), b));
  printf("%f\n", norm(2.0, sizeof(c) / sizeof(double), c));
  putchar('\n');
  printf("%f\n", norm(3.0, sizeof(a) / sizeof(double), a));
  printf("%f\n", norm(3.0, sizeof(b) / sizeof(double), b));
  printf("%f\n", norm(3.0, sizeof(c) / sizeof(double), c));
  putchar('\n');
  return 0;
}
/* end */
