File: Stare vježbe/vjezbe11/68__strukture_razlomci.c

  1. /*
  2.   68__strukture_razlomci.c
  3.   Upoznajemo se sa drugim slozenim tipovima u C-u -- strukturama.
  4.   -----
  5.   Program definira strukturu razlomak i neke elementarne operacije.
  6.   Koristi se ranije napisana funkcija za racunanje mjere iz.
  7. */
  8.  
  9. #include <stdio.h>
  10. #include "68__teorija_brojeva.h"
  11.  
  12. struct razlomak {
  13. int brojnik;
  14. int nazivnik;
  15. };
  16.  
  17. void ispisi (char *poruka, struct razlomak p)
  18. {
  19. printf ("%s%d/%d\n", poruka, p.brojnik, p.nazivnik);
  20. }
  21.  
  22. struct razlomak zbroji (struct razlomak p1, struct razlomak p2)
  23. {
  24. struct razlomak rez;
  25. int skrati_sa;
  26.  
  27. rez.brojnik=p1.brojnik*p2.nazivnik+p2.brojnik*p1.nazivnik;
  28. rez.nazivnik=p1.nazivnik*p2.nazivnik;
  29.  
  30. skrati_sa=mjera(rez.brojnik, rez.nazivnik);
  31. rez.brojnik/=skrati_sa;
  32. rez.nazivnik/=skrati_sa;
  33.  
  34. return rez;
  35. }
  36.  
  37. struct razlomak mnozi (struct razlomak p1, struct razlomak p2)
  38. {
  39. struct razlomak rez;
  40. int skrati_sa;
  41.  
  42. rez.brojnik=p1.brojnik*p2.brojnik;
  43. rez.nazivnik=p1.nazivnik*p2.nazivnik;
  44.  
  45. skrati_sa=mjera(rez.brojnik, rez.nazivnik);
  46. rez.brojnik/=skrati_sa;
  47. rez.nazivnik/=skrati_sa;
  48.  
  49. return rez;
  50. }
  51.  
  52. int main ( void )
  53. {
  54. struct razlomak p={2, 3}, q={2, 12}, zbroj, produkt;
  55.  
  56. ispisi("p=", p);
  57. ispisi("q=", q);
  58.  
  59. zbroj=zbroji (p, q);
  60. ispisi("zbroj=", zbroj);
  61.  
  62. produkt=mnozi (p, q);
  63. ispisi("produkt=", produkt);
  64. printf("\n");
  65.  
  66. do {
  67. printf("Unesi brojnik i nazivnik prvog razlomka: ");
  68. scanf("%d%d", &p.brojnik, &p.nazivnik);
  69. } while (p.nazivnik==0);
  70.  
  71. do {
  72. printf("Unesi brojnik i nazivnik drugog razlomka: ");
  73. scanf("%d%d", &q.brojnik, &q.nazivnik);
  74. } while (q.nazivnik==0);
  75.  
  76. ispisi("p=", p);
  77. ispisi("q=", q);
  78.  
  79. zbroj=zbroji (p, q);
  80. ispisi("zbroj=", zbroj);
  81.  
  82. produkt=mnozi (p, q);
  83. ispisi("produkt=", produkt);
  84.  
  85. return 0;
  86. }
  87.