Advertisement
Guest User

UsmeniProjekt

a guest
Jun 28th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. <<<<<<<<<<<<<<<<MAIN.CPP>>>>>>>>>>>>>>>>>>>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include "Header.h"
  5.  
  6. int main() {
  7. int n, m;
  8. IGRAC *pok = NULL;
  9. int indeks;
  10.  
  11.  
  12. printf("Unesite broj igraca: ");
  13. do {
  14. scanf("%d", &n);
  15. } while (n < 1 || n>10);
  16.  
  17. pok = alokacija(n);
  18.  
  19. if (pok == NULL) {
  20. printf("Neuspjelo zauzimanje memorije\n");
  21. exit(EXIT_FAILURE);
  22. }
  23. else {
  24. printf("Uspjesno zauzimanje memorije\n");
  25. }
  26.  
  27. FILE* dat = NULL;
  28. dat = fopen("Popis_igraca.txt", "w");
  29.  
  30. unos(pok, n);
  31. ispis(pok, n, dat);
  32. sort(pok, n);
  33. printf("Popis sortiran!\n");
  34. fprintf(dat, "\nIspis igraca nakon sortiranja po brojevima: \n");
  35. ispis(pok, n, dat);
  36.  
  37. fclose(dat);
  38.  
  39.  
  40. LOOP:printf("Unesite broj dresa igraca kojeg zelite provjeriti da li je na popisu: ");
  41.  
  42. do {
  43. scanf("%d", &m);
  44. } while (m<1 || m>99);
  45.  
  46. indeks = Binarno(pok, n, m);
  47.  
  48. if (indeks == -1) {
  49. printf("Nema igraca s brojem %d na popisu!\n", m);
  50. goto LOOP;
  51. }
  52. else {
  53. printf("Igrac s brojem %d je na popisu!\n", m);
  54. }
  55.  
  56. free(pok);
  57. return 0;
  58. }
  59. <<<<<<<<<<<<<FUNKCIJE.cpp>>>>>>>>>>>>>>
  60. #define _CRT_SECURE_NO_WARNINGS
  61. #include <stdio.h>
  62. #include <stdlib.h>
  63. #include "Header.h"
  64.  
  65. IGRAC* alokacija(int n) {
  66. return (IGRAC*)calloc(n, sizeof(IGRAC));
  67. }
  68.  
  69. void unos(IGRAC* igrac, int n) {
  70.  
  71. for (int i = 0; i < n; i++) {
  72. getchar();
  73. printf("Unesite ime %d. igraca: ", i + 1);
  74. fgets((igrac + i)->ime, 30, stdin);
  75.  
  76. printf("Unesite ime kluba %d. igraca: ", i + 1);
  77. fgets((igrac + i)->klub, 30, stdin);
  78.  
  79. printf("Unesite broj dresa %d. igraca: ", i + 1);
  80. scanf("%d", &(igrac + i)->br);
  81.  
  82. printf("Unesite datum rodenja %d. igraca: ", i + 1);
  83. scanf("%d %d %d", &(igrac + i)->rod.dan, &(igrac + i)->rod.mjesec, &(igrac + i)->rod.god);
  84. printf("\n");
  85.  
  86. }
  87. }
  88.  
  89. void ispis(IGRAC* igrac, int n, FILE* dat) {
  90.  
  91. for (int i = 0; i < n; i++) {
  92. fprintf(dat, "Podatci o %d. igarcu: \n", i + 1);
  93. fprintf(dat, "\n");
  94. fprintf(dat, "Ime igraca: %s", (igrac + i)->ime);
  95. fprintf(dat, "Klub za koji igra je: %s", (igrac + i)->klub);
  96. fprintf(dat, "Broj dresa: %d \n", (igrac + i)->br);
  97. fprintf(dat, "Datum rodenja: %d/%d/%d \n", (igrac + i)->rod.dan, (igrac + i)->rod.mjesec, (igrac + i)->rod.god);
  98. fprintf(dat, "\n");
  99. }
  100. }
  101.  
  102.  
  103. void sort(IGRAC* igrac, int n) {
  104. int j, i;
  105. IGRAC tmp;
  106.  
  107. for (i = 0; i<n - 1; i++)
  108. {
  109. for (j = i + 1; j <n; j++)
  110. {
  111. if (igrac[j].br < igrac[i].br)
  112. {
  113. tmp = igrac[j];
  114. igrac[j] = igrac[i];
  115. igrac[i] = tmp;
  116. }
  117. }
  118. }
  119. }
  120.  
  121. int Binarno(IGRAC* igrac, int n, int m) {
  122. int dg = 0;
  123. int gg = n - 1;
  124. int s = -1;
  125.  
  126. while (dg <= gg) {
  127. s = (dg + gg) / 2;
  128. if ((igrac + s)->br == m) {
  129. return s;
  130. }
  131. else if ((igrac + s)->br > m) {
  132. gg = s - 1;
  133. }
  134. else {
  135. dg = s + 1;
  136. }
  137. }
  138. return -1;
  139. }
  140. <<<<<<<<<<<<<HEADER.h>>>>>>>>>>>>>>>>>>
  141. #ifndef HEADER_H
  142. #define HEADER_H
  143.  
  144. typedef struct datum {
  145. int dan;
  146. int mjesec;
  147. int god;
  148. }DATUM;
  149.  
  150. typedef struct igrac {
  151. char ime[30];
  152. char klub[30];
  153. int br;
  154. DATUM rod;
  155. }IGRAC;
  156.  
  157. IGRAC* alokacija(int);
  158. void unos(IGRAC*, int);
  159. void ispis(IGRAC*, int, FILE*);
  160. void sort(IGRAC*, int);
  161. int Binarno(IGRAC*, int, int);
  162. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement