Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #define MAX 31
  5.  
  6. typedef struct elem{
  7. int sifra;
  8. string ime[MAX];
  9. string prezime[MAX];
  10. int poeni;
  11. struct elem *sled;
  12. }takmicar
  13.  
  14.  
  15.  
  16. takmicar* ucitavanje(takmicar *lst){
  17.  
  18. int sifra1;
  19. string ime1[MAX];
  20. string prezime1[MAX];
  21. int poeni1;
  22. FILE *p;
  23. takmicar *novi, *posl;
  24.  
  25. p=fopen("takmicari.txt", "r");
  26. if(p==NULL){
  27. printf("neuspesno otvaranje \n");
  28. exit(1);
  29. }
  30.  
  31. while(fscanf(p, "%d %s %s %d", sifra1, &ime1, &prezime1, &poeni1)!=EOF){ //////////nije mi ponovo jasno zasto sifra nema &
  32. novi=malloc(sizeof(takmicar));
  33. if(novi==NULL){
  34. printf("neuspesna alokacija memorije");
  35. exit(1);
  36. }
  37. else{
  38. novi->sifra=sifra1;
  39. novi->ime=ime1;
  40. novi->prezime=prezime1;
  41. novi->poeni=poeni1;
  42. novi->sled=NULL;
  43.  
  44. if(lst==NULL){
  45. lst=novi;
  46. }
  47. else{
  48. posl->sled=novi;
  49. posl=novi;
  50. }
  51. }
  52. }
  53.  
  54. fclose(p);
  55. return lst;
  56. }
  57.  
  58.  
  59. void obrada(takmicar *lst){
  60.  
  61. int sifra1;
  62. int poeni1;
  63. int poeni2;
  64. FILE *p *p1; //da li je bitno ovde i dole gde se nalaze *
  65. takmicar* tek; //recimo jel bitno da li je na tek ili na takmicar (ispred tek i iza takmicara ili ne)?
  66. int ukupni_poeni;
  67.  
  68. p=fopen("wimbldon.txt", "r");
  69. p1=fopen("atplista.txt", "w");
  70. if(p==NULL || p1==NULL){
  71. printf("neuspesno otvaranje \n");
  72. return(1);
  73. }
  74.  
  75. while(fscanf(p, "%d %d %d ", sifra, &poeni1, &poeni2)!=EOF){
  76. for(tek=lst; tek!=NULL; tek=tek->sled){
  77. if(sifra1==tek->sifra){
  78. fprintf(p1, "%d %s %s %d\n",tek->naziv, tek->ime, tek->prezime, tek->poeni-poeni1+poeni2);
  79. }
  80. else{
  81. fprintf(p1, "%d %s %s %d\n",tek->naziv, tek->ime, tek->prezime, tek->poeni);
  82. }
  83. }
  84. }
  85. fclose(p);
  86. fclose(p1);
  87. }
  88.  
  89.  
  90. takmicar* brisanje(lst){
  91. takmicar *tek, *stari;
  92.  
  93. tek=lst;
  94. while(tek!=NULL){
  95. stari=tek;
  96. tek=tek->sled;
  97. free(stari);
  98. }
  99. lst=NULL;
  100.  
  101. return lst;
  102. }
  103.  
  104.  
  105.  
  106. int main () {
  107.  
  108. takmicar* lst=NULL;
  109. lst=ucitavanje(lst);
  110. obrada(lst);
  111. lst=brisanje(lst);
  112.  
  113. return 0;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement