Advertisement
Guest User

Untitled

a guest
May 26th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. typedef struct element {
  6. char *naziv;
  7. int procenat;
  8. }Element;
  9.  
  10. typedef struct cvor {
  11. Element clanak;
  12. char *reklama;
  13. struct cvor *sledeci;
  14. } stranica;
  15.  
  16. char* ucitaj(char* p) {
  17. char c;
  18. int i = 0;
  19. char *pom;
  20. while ((c = getchar()) != '\n') {
  21. if (i % 10 == 0) {
  22. pom = realloc(p, (i + 10) * sizeof(char));
  23. if (pom == NULL) {
  24. printf("Neuspesna realokacija");
  25. exit(1);
  26. }
  27. else
  28. p = pom;
  29. }
  30. p[i++] = c;
  31. }
  32. pom = realloc(p, (i + 1) * sizeof(char));
  33. if (pom == NULL) {
  34. printf("Neuspesna realokacija");
  35. exit(1);
  36. }
  37. else
  38. p = pom;
  39.  
  40. p[i] = '\0';
  41. return p;
  42. }
  43.  
  44. stranica* citaj(stranica *p, int n) {
  45.  
  46. stranica *novi, *stari;
  47. p = (stranica*)malloc(sizeof(stranica));
  48. p->sledeci = NULL;
  49. int i;
  50.  
  51. for (i = 0; i < n; i++) {
  52. novi = calloc(1, sizeof(stranica));
  53. printf("%d. Naziv: \n", i + 1);
  54. novi->clanak.naziv = ucitaj(novi->clanak.naziv);
  55. printf("%d. Reklama: \n", i + 1);
  56. novi->reklama = ucitaj(novi->reklama);
  57. printf("%d. Prosek: \n", i + 1);
  58. scanf("%d", &novi->clanak.procenat);
  59.  
  60. getchar();
  61. novi->sledeci = p;
  62. p = novi;
  63. }
  64.  
  65. return p;
  66. }
  67.  
  68. void stampaj(stranica *p) {
  69.  
  70. while (p->sledeci != NULL) {
  71. puts(p->clanak.naziv);
  72. printf(" %d ", p->clanak.procenat);
  73. puts(p->reklama);
  74. p = p->sledeci;
  75. }
  76. }
  77.  
  78. stranica *brisi(stranica *p) {
  79.  
  80. stranica *stari;
  81.  
  82. while (p) {
  83. stari = p;
  84. p = p->sledeci;
  85. free(stari);
  86. }
  87.  
  88. }
  89.  
  90. int main() {
  91.  
  92. stranica *glava = NULL;
  93. int izbor, n;
  94.  
  95. while (1) {
  96. printf("\n1. Ucitavanje liste\n"
  97. "2. Stampanje liste\n"
  98. "3. Brisanje liste\n"
  99. "4. Ubacivanje elementa na pocetak liste\n"
  100. "5. Ubacivanje elementa na kraj liste\n"
  101. "6. Izbacivanje proizvoljnog elementa iz liste\n"
  102. "7. Obrada\n"
  103. "8. Ispis nakon obrade\n"
  104. "0. Izlaz iz programa\n"
  105. );
  106. scanf("%d", &izbor);
  107.  
  108. switch (izbor) {
  109.  
  110. case 0: printf("\n Uspesno ste izasli iy programa \n");
  111. exit(1);
  112. case 1:
  113. printf("Broj elemenata: ");
  114. scanf("%d", &n);
  115. getchar();
  116. glava = citaj(glava, n);
  117. break;
  118. case 2:
  119. stampaj(glava);
  120. break;
  121. case 3:
  122. brisi(glava);
  123. break;
  124. /*case 4:
  125. break;
  126. case 5:
  127. break;
  128. case 6:
  129. break;
  130. case 7:
  131. break;
  132. case 8:
  133. break;*/
  134. }
  135. }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement