Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ispravak #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- typedef struct {
- float x;
- float y;
- } Tocka;
- typedef struct {
- Tocka t1;
- Tocka t2;
- Tocka t3;
- } Trokut;
- float udaljenost(Tocka* t1, Tocka* t2) {
- return sqrt(pow(t2->x - t1->x, 2) + pow(t2->y - t1->y, 2));
- }
- float opseg(Trokut* t) {
- return udaljenost(&t->t1, &t->t2) + udaljenost(&t->t2, &t->t3) + udaljenost(&t->t3, &t->t1);
- }
- int main() {
- int m, n;
- do {
- printf("Unesite broj tocaka (3 <= m <= 30): ");
- scanf("%d", &m);
- } while (m < 3 || m > 30);
- do {
- printf("Unesite broj trokuta (1 <= n < 11): ");
- scanf("%d", &n);
- } while (n < 1 || n > 10);
- Tocka* tocke = (Tocka*)malloc(m * sizeof(Tocka));
- Trokut* trokuti = (Trokut*)malloc(n * sizeof(Trokut));
- for (int i = 0; i < m; i++) {
- printf("Unesite koordinate %d. tocke: ", i + 1);
- scanf("%f %f", &((tocke + i)->x), &((tocke + i)->y));
- }
- for (int i = 0; i < n; i++) {
- printf("Unesite koordinate %d. trokuta: ", i + 1);
- 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));
- }
- float maxOpseg = opseg(trokuti);
- int maxIndex = 0;
- for (int i = 1; i < n; i++) {
- float opsegTrokuta = opseg(trokuti + i);
- if (opsegTrokuta > maxOpseg) {
- maxOpseg = opsegTrokuta;
- maxIndex = i;
- }
- }
- printf("Trokut %d ima opseg %.2f s koordinatama %f %f %f %f %f %f",
- maxIndex + 1, maxOpseg, (trokuti + maxIndex)->t1.x, (trokuti + maxIndex)->t1.y,
- (trokuti + maxIndex)->t2.x, (trokuti + maxIndex)->t2.y, (trokuti + maxIndex)->t3.x, (trokuti + maxIndex)->t3.y);
- free(tocke);
- }
- \\\\\\\\\\\\\\\\\\
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- typedef struct {
- float x;
- float y;
- } tocka;
- typedef struct {
- tocka t1;
- tocka t2;
- tocka t3;
- } trokut;
- float udaljenost(tocka t1, tocka t2) {
- return sqrt(pow(t2.x - t1.x, 2) + pow(t2.y - t1.y, 2));
- }
- float prosjecnaUdaljenost(trokut t) {
- return (udaljenost(t.t1, t.t2) + udaljenost(t.t2, t.t3) + udaljenost(t.t3, t.t1)) / 3;
- }
- int main() {
- int m, n;
- do {
- printf("Unesite broj tocka (3 <= m <= 30): ");
- scanf("%d", &m);
- } while (m < 3 || m > 30);
- do {
- printf("Unesite broj trokuta (1 <= n < 11): ");
- scanf("%d", &n);
- } while (n < 1 || n > 10);
- tocka *tocke = (tocka *) malloc(m * sizeof(tocka));
- trokut *trokuti = (trokut *) malloc(n * sizeof(trokut));
- for (int i = 0; i < m; i++) {
- printf("Unesite koordinate tocke %d: ", i + 1);
- scanf("%f %f", &tocke[i].x, &tocke[i].y);
- }
- for (int i = 0; i < n; i++) {
- printf("Unesite koordinate trokuta %d: ", i + 1);
- 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);
- }
- float minUdaljenost = prosjecnaUdaljenost(trokuti[0]);
- float maxUdaljenost = prosjecnaUdaljenost(trokuti[0]);
- int minIndex = 0;
- int maxIndex = 0;
- for (int i = 1; i < n; i++) {
- float udaljenost = prosjecnaUdaljenost(trokuti[i]);
- if (udaljenost < minUdaljenost) {
- minUdaljenost = udaljenost;
- minIndex = i;
- }
- if (udaljenost > maxUdaljenost) {
- maxUdaljenost = udaljenost;
- maxIndex = i;
- }
- }
- 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);
- 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);
- free(tocke);
- free(trokuti);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement