avukas

upisi uposlenike sa platom vecom od 999 i sort po prezimenu

Sep 21st, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct Uposlenik
  5. {
  6.     char ime[20];
  7.     char prezime[20];
  8.     int plata;
  9. };
  10. struct Uposlenik sort_po_prezimenu(struct Uposlenik niz[], int vel)
  11. {
  12.     int i,j;
  13.     char *p,*s;
  14.     for (i=0; i<vel; i++)
  15.     {
  16.         for (j=i; j<vel; j++)
  17.         {
  18.              p=niz[i].prezime;
  19.              s=niz[i].ime;
  20.              if(*p > *s)
  21.              {
  22.                  struct Uposlenik temp = niz[i];
  23.                  niz[i] = niz[j];
  24.                  niz[j] = temp;
  25.              }
  26.         }
  27.     }
  28.  
  29. };
  30.  
  31. int main()
  32. {
  33.     FILE *ulaz, *izlaz;
  34.     int i,j, vel = 0;
  35.     struct Uposlenik niz[10];
  36.     char znak;
  37.     ulaz = fopen("plata.txt", "r");
  38.     izlaz = fopen("cp.txt", "w");
  39.     if (ulaz == NULL)
  40.     {
  41.         printf("Nije moguce otvaranje datoteke..\n");
  42.         exit(1);
  43.     }
  44.     if(izlaz == NULL)
  45.     {
  46.         printf("Nije moguce otvaranje datoreke");
  47.         exit(2);
  48.     }
  49.     while(fscanf(ulaz, "%s%c%s%c%d\n", &niz[vel].ime, &znak, &niz[vel].prezime, &znak, &niz[vel].plata)!= EOF)
  50.     {
  51.         vel++;
  52.  
  53.     }
  54.     sort_po_prezimenu(niz,vel);
  55.     for (i=0; i<vel; i++)
  56.     {
  57.         if (niz[i].plata > 999)
  58.         {
  59.             fprintf(izlaz, "%s %s %d\n", niz[i].ime, niz[i].prezime, niz[i].plata);
  60.         }
  61.     }
  62.  
  63.  
  64.         fclose(ulaz);
  65.         fclose(izlaz);
  66.         return 0;
  67.  
  68. }
Advertisement
Add Comment
Please, Sign In to add comment