File: Stare vježbe/vjezbe11/68__strukture_razlomci.c
/* 68__strukture_razlomci.c Upoznajemo se sa drugim slozenim tipovima u C-u -- strukturama. ----- Program definira strukturu razlomak i neke elementarne operacije. Koristi se ranije napisana funkcija za racunanje mjere iz. */ #include <stdio.h> #include "68__teorija_brojeva.h" struct razlomak { int brojnik; int nazivnik; }; void ispisi (char *poruka, struct razlomak p) { printf ("%s%d/%d\n", poruka, p. brojnik, p. nazivnik); } struct razlomak zbroji (struct razlomak p1, struct razlomak p2) { struct razlomak rez; int skrati_sa; rez.brojnik=p1.brojnik*p2.nazivnik+p2.brojnik*p1.nazivnik; rez.nazivnik=p1.nazivnik*p2.nazivnik; skrati_sa=mjera(rez.brojnik, rez.nazivnik); rez.brojnik/=skrati_sa; rez.nazivnik/=skrati_sa; return rez; } struct razlomak mnozi (struct razlomak p1, struct razlomak p2) { struct razlomak rez; int skrati_sa; rez.brojnik=p1.brojnik*p2.brojnik; rez.nazivnik=p1.nazivnik*p2.nazivnik; skrati_sa=mjera(rez.brojnik, rez.nazivnik); rez.brojnik/=skrati_sa; rez.nazivnik/=skrati_sa; return rez; } int main ( void ) { struct razlomak p={2, 3}, q={2, 12}, zbroj, produkt; ispisi("p=", p); ispisi("q=", q); zbroj=zbroji (p, q); ispisi("zbroj=", zbroj); produkt=mnozi (p, q); ispisi("produkt=", produkt); do { printf("Unesi brojnik i nazivnik prvog razlomka: "); scanf("%d%d", &p.brojnik, &p.nazivnik); } while (p.nazivnik==0); do { printf("Unesi brojnik i nazivnik drugog razlomka: "); scanf("%d%d", &q.brojnik, &q.nazivnik); } while (q.nazivnik==0); ispisi("p=", p); ispisi("q=", q); zbroj=zbroji (p, q); ispisi("zbroj=", zbroj); produkt=mnozi (p, q); ispisi("produkt=", produkt); return 0; }
|