Guest User

Untitled

a guest
Jul 19th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.46 KB | None | 0 0
  1. #include <stdio.h> //za printf i scanf
  2. #include <conio.h> //za getch()
  3.  
  4. #define BROJ_UNOSA 12 //da bi olaksao menjanje broja unosa
  5.  
  6. int main()
  7. {
  8. unsigned short int niz_putnika[BROJ_UNOSA] = {0}, niz_zarada[BROJ_UNOSA] = {0}, //nizovi ciji su elementi broj putnika i zarada po deonici
  9. min = 0, max = 0,
  10. suma_putnika = 0, suma_zarada = 0;
  11. char in_min = 0, in_max = 0, i, provera;
  12. float prosek; //za racunanje zarade
  13.  
  14. printf("\nMolim unesite broj putnika po deonicama puta.\n\n");
  15.  
  16. for (i = 0; i < BROJ_UNOSA; ++i)
  17. {
  18. printf("Koliko je bilo putnika na %hu. deonici? >> ", i+1); //jer niz pocinje od nultog clana
  19. do
  20. {
  21. fflush(stdin); //ciscenje bafera
  22. provera = scanf("%hu", &niz_putnika[i]); //provera je jednaka 1 samo kad se tip unetog podatka poklapa sa trazenim tipom podatka
  23. if (provera < 1 || niz_putnika[i] > 56) //56 je broj mesta u autobusu
  24. {
  25. printf("\nLos unos.\nMolim unesite opet broj putnika: ");
  26. }
  27. }
  28. while (provera < 1 || niz_putnika[i] > 56); //vraca na unos sve dok se ne unese dobar podatak
  29. suma_putnika += niz_putnika[i]; //sumira broj prevezenih putnika
  30. }
  31.  
  32. for (i = 0; i < BROJ_UNOSA; ++i)
  33. {
  34. unsigned short int zarada = 0; //zarada - lokalna promenjiva koja belezi zaradu po deonici
  35.  
  36. if (niz_putnika[i] > 5)
  37. {
  38. zarada = 18;
  39. if (niz_putnika[i] > 25)
  40. {
  41. zarada = 153;
  42. if (niz_putnika[i] > 42)
  43. {
  44. zarada = 180;
  45. }
  46. }
  47. }
  48. niz_zarada[i] = zarada; //upisivanje zarade na i-toj deonici u niz zarada
  49. suma_zarada += zarada; //sumira ukupnu zaradu
  50. }
  51.  
  52. for (i = 1, min = niz_zarada[0]; i < BROJ_UNOSA; ++i) //trazi minimalnu zaradu
  53. {
  54. if (niz_zarada[i] < min)
  55. {
  56. in_min = i; //broj deonice na kojoj je zarada bila najmanja
  57. min = niz_zarada[i]; //najmanja zarada
  58. }
  59. }
  60.  
  61. for (i = 1, max = niz_zarada[0]; i < BROJ_UNOSA; ++i)
  62. {
  63. if (niz_zarada[i] > max)
  64. {
  65. in_max = i; //broj deonice na kojoj je zarada bila najveca(in je za index)
  66. max = niz_zarada[i]; //najveca zarada
  67. }
  68. }
  69.  
  70. prosek = (float)suma_zarada / BROJ_UNOSA; //(float) - menja tip promenjive suma_zarada u float da deljenje ne bi bilo celobrojno
  71.  
  72. printf("\nVozac je ukupno zaradio %hu dinara prevezavsi ukupno %hu putnika.", suma_zarada, suma_putnika);
  73. printf("\nVozac je u proseku zaradio %.2f dinara na sat.", prosek/2); //prosek delimo s 2 jer 1 deonica predstavlja 2 radna sata
  74. printf("\nVozac je najmanje zaradio na %hu.deonici i to %hu dinara, prevezavsi %hu putnika.", in_min + 1, min, niz_putnika[in_min]); //in_min + 1 jer niz pocinje od nultog clana
  75. printf("\nVozac je najvise zaradio na %hu.deonici i to %hu dinara, prevezavsi %hu putnika.", in_max + 1, max, niz_putnika[in_max]); //in_max + 1 jer niz pocinje od nultog clana
  76.  
  77. getch(); //da bi program ostao na ekranu dok ne pritisnemo nesto na tastaturi
  78. return 0;
  79. }
Add Comment
Please, Sign In to add comment