Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main (void)
  5. {
  6.     int n, i, j, k, l;
  7.     double area, volume, p, x[5], y[5], z[5], ladoA, ladoB, ladoC, altura;
  8.  
  9.     scanf("%d", &n);
  10.     for(j = 0;j<n; j++)
  11.     {
  12.         for (i = 0; i < 4; i++)
  13.         {
  14.             do
  15.             {
  16.                 scanf("%lf %lf %lf", &x[i], &y[i], &z[i]);
  17.             } while (x[i]>1000 || x[i]<0 ||y[i]>1000 || y[i]<0 ||z[i]>1000 || z[i]<0);
  18.             for (k=0;k<=i;k++)
  19.             {
  20.                 for (l=k+1;l<=i;l++)
  21.                 {
  22.                     if (x[k] == x[l] && y[k] == y[l] && z[k] == z[l]) i--;
  23.                 }
  24.             }
  25.         }
  26.  
  27.        
  28.  
  29.         ladoA = sqrt((x[0]-x[1])*(x[0]-x[1]) + (y[0]-y[1])*(y[0]-y[1]));
  30.         ladoB = sqrt((x[1]-x[2])*(x[1]-x[2]) + (y[1]-y[2])*(y[1]-y[2]));
  31.         ladoC = sqrt((x[2]-x[0])*(x[2]-x[0]) + (y[2]-y[0])*(y[2]-y[0]));
  32.         altura = z[3];
  33.         p = (ladoA + ladoB + ladoC)/2;
  34.            
  35.         area = sqrt( p * (p - ladoA) * (p - ladoB) * (p - ladoC));
  36.         volume = area * altura / 3;
  37.         printf("%1.6f\n", volume);
  38.     }
  39.  
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement