Advertisement
filip710

PROG2 LV4 Z1

Jun 29th, 2016
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.10 KB | None | 0 0
  1. /* Napišite C program koji omogućuje unos dva broja n i m. Omogućiti unos n točaka i
  2. m trokuta. Pronaći i ispisati trokut koji ima najveći opseg. Opseg najvećeg trokuta
  3. ispisati u formatu (“%.2f\n“). Pretpostaviti da n i m neće biti veći od 10, ali nije
  4. potrebno u kodu testirati njihove veličine. */
  5.  
  6. #include<stdio.h>
  7. #include<math.h>
  8.  
  9. struct tocka{
  10.  
  11. float x;
  12. float y;
  13. float z;
  14. };
  15.  
  16. struct trokut{
  17.  
  18. struct tocka *t1;
  19. struct tocka *t2;
  20. struct tocka *t3;
  21. };
  22.  
  23. float len3d(float x1, float y1, float z1, float x2, float y2, float z2);
  24.  
  25. int main()
  26. {
  27.     int n,m,i;
  28.     int ind1,ind2,ind3;
  29.     float l1,l2,l3;
  30.     float trenutniOpseg,maxOpseg=0;
  31.     printf("Broj tocaka: ");
  32.     scanf("%d",&n);
  33.     printf("Broj trokuta: ");
  34.     scanf("%d",&m);
  35.  
  36.     struct tocka tocke[n];
  37.     struct trokut trokuti[m];
  38.  
  39.     printf("Upisi tocke: \n");
  40.     for(i=0;i<n;i++)
  41.     {
  42.         printf("T%d \n",i+1);
  43.         printf("x: ");
  44.         scanf("%f",&tocke[i].x);
  45.         printf("y: ");
  46.         scanf("%f",&tocke[i].y);
  47.         printf("z: ");
  48.         scanf("%f",&tocke[i].z);
  49.     }
  50.    
  51.     printf("Upisite indekse tocaka koje cine trokut: \n");
  52.     for(i=0;i<m;i++)
  53.     {
  54.         scanf("%d%d%d",&ind1,&ind2,&ind3);
  55.        
  56.         trokuti[i].t1=&tocke[ind1];
  57.         trokuti[i].t2=&tocke[ind2];
  58.         trokuti[i].t3=&tocke[ind3];
  59.     }
  60.    
  61.     for(i=0;i<m;i++)
  62.     {
  63.         trenutniOpseg=0;
  64.         l1 = len3d(trokuti[i].t1->x, trokuti[i].t1->y, trokuti[i].t1->z, trokuti[i].t2->x, trokuti[i].t2->y, trokuti[i].t2->z);
  65.         l2 = len3d(trokuti[i].t2->x, trokuti[i].t2->y, trokuti[i].t2->z, trokuti[i].t3->x, trokuti[i].t3->y, trokuti[i].t3->z);
  66.         l3 = len3d(trokuti[i].t3->x, trokuti[i].t3->y, trokuti[i].t3->z, trokuti[i].t1->x, trokuti[i].t1->y, trokuti[i].t1->z);
  67.         trenutniOpseg=l1+l2+l3;
  68.         if(trenutniOpseg>maxOpseg) maxOpseg=trenutniOpseg;
  69.     }
  70.     printf(".*REZULTATI:\n%.2f.*\n", maxOpseg);
  71.     return 0;
  72. }
  73.  
  74. float len3d(float x1, float y1, float z1, float x2, float y2, float z2)
  75. {
  76.     return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2) + pow(z2 - z1, 2));
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement