Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- typedef struct _pjevac{
- char ime[31];
- char drzava[31];
- int ukupno;
- int poslj;
- struct _pjevac *next;
- }pjevac;
- void odaberi(pjevac** first, char ime[]){
- char drzava[31]="";
- pjevac* pom;
- for(pom=*first; pom!=NULL; pom=pom->next)
- if(strcmp(ime, pom->ime)==0){
- strcpy(drzava, pom->drzava);
- break;
- }
- if(drzava=="")return;
- for(pom=*first; pom->next!=NULL; pom=pom->next)
- if(strcmp(pom->next->drzava, drzava)==0){
- pjevac* temp=pom->next;
- pom->next=temp->next;
- free(temp);
- }
- //provjera prvog
- if(strcmp((*first)->drzava, drzava)==0){
- pjevac* temp=*first;
- (*first)=(*first)->next;
- free(temp);
- }
- }
- pjevac* izbaci(pjevac* first, pjevac* rje){
- pjevac* pom;
- if(rje==first) return first->next;
- for(pom=first; pom->next!=NULL; pom=pom->next)
- if((pom->next)==rje){
- pjevac* temp=pom->next;
- pom->next=temp->next;
- free(temp);
- break;
- }
- return first;
- }
- pjevac* ubaci(pjevac* first, pjevac* rje){
- if(first==NULL) return rje;
- pjevac* pom;
- while(pom->next)pom=pom->next;
- pom->next=rje;
- return first;
- }
- pjevac* dodaj_bodove(pjevac* first, int bodovi){
- pjevac* pom=first;
- int n=0, min;
- while(pom){
- n++;
- pom=pom->next; //n je broj elementa u listi
- }
- if(n==0)return NULL;
- pjevac* rje;
- pjevac* novi=NULL;
- while(n){
- min=first->ukupno;
- for(pom=first; pom!=NULL; pom->next)
- if((pom->ukupno)<min){
- min=pom->ukupno;
- rje=pom;
- }
- novi=ubaci(novi, rje);
- first=izbaci(first, rje);
- n--;
- }
- for(pom=novi; pom!=NULL; pom=pom->next){
- pom->ukupno+=bodovi;
- bodovi=bodovi/3;
- }
- return novi;
- }
- pjevac* dodaj(pjevac *first, char ime[], char drzava[], int poslj, int ukupno)
- {
- pjevac *pom = (pjevac*) malloc(sizeof(pjevac));
- strcpy(pom->ime, ime);
- strcpy(pom->drzava, drzava);
- pom->poslj = poslj;
- pom->ukupno = ukupno;
- if (first == NULL) {
- pom->next = NULL;
- } else {
- pom->next = first;
- }
- return pom;
- }
- void ispisi(pjevac *first) {
- while(first) {
- printf("%s %s %d %d\n", first->ime, first->drzava,
- first->poslj, first->ukupno);
- first = first->next;
- }
- }
- int main(void) {
- pjevac *lista = NULL;
- lista = dodaj(lista, "prvi", "italija", 40, 250);
- lista = dodaj(lista, "treci", "njemacka", 30, 120);
- lista = dodaj(lista, "drugi", "njemacka", 35, 234);
- lista = dodaj(lista, "cetvrti", "svicarska", 30, 224);
- lista = dodaj(lista, "peti", "svicarska", 37, 150);
- lista = dodaj(lista, "sesti", "italija", 35, 235);
- ispisi(lista);
- printf("izbacujemo\n");
- odaberi(&lista, "treci");
- ispisi(lista);
- lista = dodaj_bodove(lista, 50);
- printf("nakon rangiranja:\n");
- ispisi(lista);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement