Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Napišite C program koji omogućuje unos dva broja n i m. Omogućiti unos n točaka i
- m trokuta. Pronaći i ispisati trokut koji ima najveći opseg. Opseg najvećeg trokuta
- ispisat će se u funkciji main. Pretpostaviti kako n i m neće biti veći od 10, ali nije
- potrebno u kodu testirati njihove veličine. */
- //MAIN FUNKCIJA
- #include <math.h>
- #include <stdio.h>
- #include "myheader.h"
- int main(void)
- {
- int n, m;
- Tocka tocke[100];
- Trokut trokuti[100];
- float opseg;
- printf("Upisi broj tocaka koje zelis unijeti: ");
- scanf("%d", &n);
- printf("Upisi broj trokuta koje zelis unijeti: ");
- scanf("%d", &m);
- unesiTocke(tocke, n);
- unesiTrokute(trokuti, tocke, m);
- opseg = pronadjiNajveciOpseg(trokuti, m);
- printf("REZULTATI:\n");
- printf("%.2f", opseg);
- return 0;
- }
- //POMOĆNE FUNKCIJE U DRUGOJ DATOTECI
- #include <math.h>
- #include <stdio.h>
- #include "myheader.h"
- void unesiTocke(Tocka *p, int n){
- int i;
- for(int i = 0; i < n; i++)
- {
- scanf("%f", &p[i].x);
- scanf("%f", &p[i].y);
- scanf("%f", &p[i].z);
- }
- }
- void unesiTrokute(Trokut *t, Tocka *p, int m){
- int i, ind1, ind2, ind3;
- for(int i = 0; i < m; i++){
- scanf("%d%d%d", &ind1, &ind2, &ind3);
- t[i].t1 = &p[ind1];
- t[i].t2 = &p[ind2];
- t[i].t3 = &p[ind3];
- }
- }
- float pronadjiNajveciOpseg(Trokut* t, int m)
- {
- float opseg[m],opsegMax=0;
- int i;
- for(i=0;i<m;i++)
- {
- opseg[i] = izracunajOpseg(t[i].t1, t[i].t2, t[i].t3);
- if(opsegMax < opseg[i])
- opsegMax = opseg[i];
- }
- return opsegMax;
- }
- float izracunajOpseg(Tocka *t1, Tocka *t2, Tocka *t3){
- float a, b, c, opseg;
- a= sqrt(pow(t2->x - t1->x, 2) + pow(t2->y - t1->y, 2) + pow(t2->z - t1->z, 2));
- b = sqrt(pow(t3->x - t2->x, 2) + pow(t3->y - t2->y, 2) + pow(t3->z - t2->z, 2));
- c = sqrt(pow(t1->x - t3->x, 2) + pow(t1->y - t3->y, 2) + pow(t1->z - t3->z, 2));
- opseg = a + b + c;
- return opseg;
- }
- //HEADER
- #ifndef MYHEADER_H
- #define MYHEADER_H
- typedef struct tocka {
- float x;
- float y;
- float z;
- } Tocka;
- typedef struct trokut {
- struct tocka *t1;
- struct tocka *t2;
- struct tocka *t3;
- } Trokut;
- void unesiTocke(Tocka* tocke, int n);
- void unesiTrokute(Trokut* trokuti, Tocka* tocke, int m);
- float pronadjiNajveciOpseg(Trokut* trokuti, int m);
- float izracunajOpseg(Tocka*, Tocka*, Tocka*);
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement