Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct Datum { int dan, mjesec, godina; };
  5. struct Student
  6. {
  7. char ime[20], prezime[20];
  8. struct Datum datum_rodjenja;
  9. };
  10.  
  11. int broj(struct Datum d)
  12. {
  13. int x = d.dan;
  14. switch (d.mjesec)
  15. {
  16. case 1:
  17. x = x + (d.godina - 1) / 4 - (d.godina - 1) / 100 + (d.godina - 1) / 400;
  18. break;
  19. case 2:
  20. x = x + (d.godina - 1) / 4 - (d.godina - 1) / 100 + (d.godina - 1) / 400 + 31;
  21. break;
  22. case 3:
  23. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 59;
  24. break;
  25. case 4:
  26. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 90;
  27. break;
  28. case 5:
  29. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 120;
  30. break;
  31. case 6:
  32. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 151;
  33. break;
  34. case 7:
  35. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 181;
  36. break;
  37. case 8:
  38. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 212;
  39. break;
  40. case 9:
  41. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 243;
  42. break;
  43. case 10:
  44. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 273;
  45. break;
  46. case 11:
  47. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 304;
  48. break;
  49. case 12:
  50. x = x + d.godina / 4 - d.godina / 100 + d.godina / 400 + 334;
  51. break;
  52. }
  53. x += (d.godina-1) * 365;
  54. return x;
  55. }
  56.  
  57. void period(struct Student niz[], int n, int d)
  58. {
  59. for (int i = 0; i < n - 1; i++)
  60. {
  61. for (int j = i + 1; j < n; j++)
  62. {
  63. if (abs(broj(niz[i].datum_rodjenja) - broj(niz[j].datum_rodjenja)) == d)
  64. {
  65. printf("%s %s - %s %s\n", niz[i].ime, niz[i].prezime, niz[j].ime, niz[j].prezime);
  66. }
  67. }
  68. }
  69. }
  70.  
  71. void promijeni(struct Student izmjena, int x)
  72. {
  73. FILE * ptr;
  74. ptr = fopen("studenti.dat", "rb+");
  75. fseek(ptr, 44 * (x-1), SEEK_SET);
  76. fwrite(izmjena.ime, sizeof(izmjena.ime), 1, ptr);
  77. fwrite(izmjena.prezime, sizeof(izmjena.prezime), 1, ptr);
  78. fwrite(&izmjena.datum_rodjenja.dan, sizeof(unsigned char), 1, ptr);
  79. fwrite(&izmjena.datum_rodjenja.mjesec, sizeof(unsigned char), 1, ptr);
  80. fwrite(&izmjena.datum_rodjenja.godina, sizeof(unsigned short), 1, ptr);
  81. fclose(ptr);
  82. }
  83.  
  84. void zapisi(struct Student niz[], int n)
  85. {
  86. FILE * ptr;
  87. if((ptr = fopen("studenti.dat", "wb")) == NULL){
  88. printf("nije uspjelo otvaranje datoteke za pisanje");
  89. return;
  90. }
  91. for (int i = 0; i < n; i++)
  92. {
  93. fwrite(niz[i].ime, sizeof(niz[i].ime), 1, ptr);
  94. fwrite(niz[i].prezime, sizeof(niz[i].prezime), 1, ptr);
  95. fwrite(&niz[i].datum_rodjenja.dan, sizeof(unsigned char), 1, ptr);
  96. fwrite(&niz[i].datum_rodjenja.mjesec, sizeof(unsigned char), 1, ptr);
  97. fwrite(&niz[i].datum_rodjenja.godina, sizeof(unsigned short), 1, ptr);
  98. }
  99. fclose(ptr);
  100. }
  101.  
  102. int main()
  103. {
  104. return 0;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement