Advertisement
elica123

Untitled

Aug 21st, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4.  
  5. typedef struct _pjevac{
  6. char ime[31];
  7. char drzava[31];
  8. int ukupno;
  9. int poslj;
  10. struct _pjevac *next;
  11. }pjevac;
  12.  
  13. void odaberi(pjevac** first, char ime[]){
  14. char drzava[31]="";
  15. pjevac* pom;
  16. for(pom=*first; pom!=NULL; pom=pom->next)
  17. if(strcmp(ime, pom->ime)==0){
  18. strcpy(drzava, pom->drzava);
  19. break;
  20. }
  21. if(drzava=="")return;
  22. for(pom=*first; pom->next!=NULL; pom=pom->next)
  23. if(strcmp(pom->next->drzava, drzava)==0){
  24. pjevac* temp=pom->next;
  25. pom->next=temp->next;
  26. free(temp);
  27. }
  28. //provjera prvog
  29. if(strcmp((*first)->drzava, drzava)==0){
  30. pjevac* temp=*first;
  31. (*first)=(*first)->next;
  32. free(temp);
  33. }
  34. }
  35.  
  36. pjevac* izbaci(pjevac* first, pjevac* rje){
  37. pjevac* pom;
  38. if(rje==first) return first->next;
  39. for(pom=first; pom->next!=NULL; pom=pom->next)
  40. if((pom->next)==rje){
  41. pjevac* temp=pom->next;
  42. pom->next=temp->next;
  43. free(temp);
  44. break;
  45. }
  46. return first;
  47. }
  48.  
  49. pjevac* ubaci(pjevac* first, pjevac* rje){
  50. if(first==NULL) return rje;
  51. pjevac* pom;
  52. while(pom->next)pom=pom->next;
  53. pom->next=rje;
  54. return first;
  55. }
  56.  
  57. pjevac* dodaj_bodove(pjevac* first, int bodovi){
  58. pjevac* pom=first;
  59. int n=0, min;
  60. while(pom){
  61. n++;
  62. pom=pom->next; //n je broj elementa u listi
  63. }
  64. if(n==0)return NULL;
  65. pjevac* rje;
  66. pjevac* novi=NULL;
  67. while(n){
  68. min=first->ukupno;
  69. for(pom=first; pom!=NULL; pom->next)
  70. if((pom->ukupno)<min){
  71. min=pom->ukupno;
  72. rje=pom;
  73. }
  74. novi=ubaci(novi, rje);
  75. first=izbaci(first, rje);
  76. n--;
  77. }
  78. for(pom=novi; pom!=NULL; pom=pom->next){
  79. pom->ukupno+=bodovi;
  80. bodovi=bodovi/3;
  81. }
  82. return novi;
  83. }
  84.  
  85. pjevac* dodaj(pjevac *first, char ime[], char drzava[], int poslj, int ukupno)
  86. {
  87. pjevac *pom = (pjevac*) malloc(sizeof(pjevac));
  88. strcpy(pom->ime, ime);
  89. strcpy(pom->drzava, drzava);
  90. pom->poslj = poslj;
  91. pom->ukupno = ukupno;
  92.  
  93. if (first == NULL) {
  94. pom->next = NULL;
  95. } else {
  96. pom->next = first;
  97. }
  98.  
  99. return pom;
  100. }
  101.  
  102. void ispisi(pjevac *first) {
  103. while(first) {
  104. printf("%s %s %d %d\n", first->ime, first->drzava,
  105. first->poslj, first->ukupno);
  106. first = first->next;
  107. }
  108. }
  109.  
  110. int main(void) {
  111. pjevac *lista = NULL;
  112. lista = dodaj(lista, "prvi", "italija", 40, 250);
  113. lista = dodaj(lista, "treci", "njemacka", 30, 120);
  114. lista = dodaj(lista, "drugi", "njemacka", 35, 234);
  115. lista = dodaj(lista, "cetvrti", "svicarska", 30, 224);
  116. lista = dodaj(lista, "peti", "svicarska", 37, 150);
  117. lista = dodaj(lista, "sesti", "italija", 35, 235);
  118. ispisi(lista);
  119.  
  120. printf("izbacujemo\n");
  121. odaberi(&lista, "treci");
  122. ispisi(lista);
  123.  
  124.  
  125. lista = dodaj_bodove(lista, 50);
  126. printf("nakon rangiranja:\n");
  127. ispisi(lista);
  128. return 0;
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement