Advertisement
antisa

Untitled

Jun 10th, 2021 (edited)
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.61 KB | None | 0 0
  1. Ispravak #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. typedef struct {
  6.     float x;
  7.     float y;
  8. } Tocka;
  9.  
  10. typedef struct {
  11.     Tocka t1;
  12.     Tocka t2;
  13.     Tocka t3;
  14. } Trokut;
  15.  
  16. float udaljenost(Tocka* t1, Tocka* t2) {
  17.     return sqrt(pow(t2->x - t1->x, 2) + pow(t2->y - t1->y, 2));
  18. }
  19.  
  20. float opseg(Trokut* t) {
  21.     return udaljenost(&t->t1, &t->t2) + udaljenost(&t->t2, &t->t3) + udaljenost(&t->t3, &t->t1);
  22. }
  23.  
  24. int main() {
  25.     int m, n;
  26.     do {
  27.         printf("Unesite broj tocaka (3 <= m <= 30): ");
  28.         scanf("%d", &m);
  29.     } while (m < 3 || m > 30);
  30.     do {
  31.         printf("Unesite broj trokuta (1 <= n < 11): ");
  32.         scanf("%d", &n);
  33.     } while (n < 1 || n > 10);
  34.  
  35.     Tocka* tocke = (Tocka*)malloc(m * sizeof(Tocka));
  36.     Trokut* trokuti = (Trokut*)malloc(n * sizeof(Trokut));
  37.  
  38.     for (int i = 0; i < m; i++) {
  39.         printf("Unesite koordinate %d. tocke: ", i + 1);
  40.         scanf("%f %f", &((tocke + i)->x), &((tocke + i)->y));
  41.     }
  42.  
  43.     for (int i = 0; i < n; i++) {
  44.         printf("Unesite koordinate %d. trokuta: ", i + 1);
  45.         scanf("%f %f %f %f %f %f", &((trokuti + i)->t1.x), &((trokuti + i)->t1.y), &((trokuti + i)->t2.x), &((trokuti + i)->t2.y), &((trokuti + i)->t3.x), &((trokuti + i)->t3.y));
  46.     }
  47.  
  48.     float maxOpseg = opseg(trokuti);
  49.     int maxIndex = 0;
  50.     for (int i = 1; i < n; i++) {
  51.         float opsegTrokuta = opseg(trokuti + i);
  52.         if (opsegTrokuta > maxOpseg) {
  53.             maxOpseg = opsegTrokuta;
  54.             maxIndex = i;
  55.         }
  56.     }
  57.  
  58.     printf("Trokut %d ima opseg %.2f s koordinatama %f %f %f %f %f %f",
  59.         maxIndex + 1, maxOpseg, (trokuti + maxIndex)->t1.x, (trokuti + maxIndex)->t1.y,
  60.         (trokuti + maxIndex)->t2.x, (trokuti + maxIndex)->t2.y, (trokuti + maxIndex)->t3.x, (trokuti + maxIndex)->t3.y);
  61.  
  62.     free(tocke);
  63. }
  64.  
  65.  
  66. \\\\\\\\\\\\\\\\\\
  67.  
  68. #include <stdio.h>
  69.  #include <stdlib.h>
  70.  #include <math.h>
  71.  
  72.  typedef struct {
  73.      float x;
  74.      float y;
  75.  } tocka;
  76.  
  77.  typedef struct {
  78.      tocka t1;
  79.      tocka t2;
  80.      tocka t3;
  81.  } trokut;
  82.  
  83.  float udaljenost(tocka t1, tocka t2) {
  84.      return sqrt(pow(t2.x - t1.x, 2) + pow(t2.y - t1.y, 2));
  85.  }
  86.  
  87.  float prosjecnaUdaljenost(trokut t) {
  88.      return (udaljenost(t.t1, t.t2) + udaljenost(t.t2, t.t3) + udaljenost(t.t3, t.t1)) / 3;
  89.  }
  90.  
  91.  int main() {
  92.      int m, n;
  93.      do {
  94.          printf("Unesite broj tocka (3 <= m <= 30): ");
  95.          scanf("%d", &m);
  96.      } while (< 3 || m > 30);
  97.      do {
  98.          printf("Unesite broj trokuta (1 <= n < 11): ");
  99.          scanf("%d", &n);
  100.      } while (< 1 || n > 10);
  101.  
  102.      tocka *tocke = (tocka *) malloc(* sizeof(tocka));
  103.      trokut *trokuti = (trokut *) malloc(* sizeof(trokut));
  104.  
  105.      for (int i = 0; i < m; i++) {
  106.          printf("Unesite koordinate tocke %d: ", i + 1);
  107.          scanf("%f %f", &tocke[i].x, &tocke[i].y);
  108.      }
  109.  
  110.      for (int i = 0; i < n; i++) {
  111.          printf("Unesite koordinate trokuta %d: ", i + 1);
  112.          scanf("%f %f %f %f %f %f", &trokuti[i].t1.x, &trokuti[i].t1.y, &trokuti[i].t2.x, &trokuti[i].t2.y, &trokuti[i].t3.x, &trokuti[i].t3.y);
  113.      }
  114.  
  115.      float minUdaljenost = prosjecnaUdaljenost(trokuti[0]);
  116.      float maxUdaljenost = prosjecnaUdaljenost(trokuti[0]);
  117.      int minIndex = 0;
  118.      int maxIndex = 0;
  119.  
  120.      for (int i = 1; i < n; i++) {
  121.          float udaljenost = prosjecnaUdaljenost(trokuti[i]);
  122.          if (udaljenost < minUdaljenost) {
  123.              minUdaljenost = udaljenost;
  124.              minIndex = i;
  125.          }
  126.          if (udaljenost > maxUdaljenost) {
  127.              maxUdaljenost = udaljenost;
  128.              maxIndex = i;
  129.          }
  130.      }
  131.  
  132.      printf("Trokut %d ima udaljenost %.2f s koordinatama %.2f %.2f %.2f %.2f %.2f %.2f \n", minIndex + 1, minUdaljenost, trokuti[minIndex].t1.x, trokuti[minIndex].t1.y, trokuti[minIndex].t2.x, trokuti[minIndex].t2.y, trokuti[minIndex].t3.x, trokuti[minIndex].t3.y);
  133.      printf("Trokut %d ima udaljenost %.2f s koordinatama %.2f %.2f %.2f %.2f %.2f %.2f \n", maxIndex + 1, maxUdaljenost, trokuti[maxIndex].t1.x, trokuti[maxIndex].t1.y, trokuti[maxIndex].t2.x, trokuti[maxIndex].t2.y, trokuti[maxIndex].t3.x, trokuti[maxIndex].t3.y);
  134.  
  135.      free(tocke);
  136.      free(trokuti);
  137.  
  138.      return 0;
  139.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement