fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <math.h>
  5.  
  6. double norm2(double a[],int n)
  7. {
  8. double sum = 0, maxa = fabs(a[0]);
  9. for(int i = 1; i < n; i++)
  10. if (maxa < fabs(a[i])) maxa = fabs(a[i]);
  11. for(int i = 0; i < n; i++)
  12. {
  13. double x = a[i]/maxa;
  14. sum += x*x;
  15. }
  16. return sqrt(sum)*maxa;
  17. }
  18.  
  19. int main(int argc, char * argv[])
  20. {
  21. int n;
  22. scanf("%d",&n);
  23. double * a = malloc(n*sizeof(double));
  24. for(int i = 0; i < n; ++i)
  25. scanf("%le",&a[i]);
  26. printf("%le\n",norm2(a,n));
  27. }
  28.  
Success #stdin #stdout 0s 5640KB
stdin
3
1e164  2e165  3e165
stdout
3.606938e+165