Advertisement
Guest User

dsdasdas

a guest
May 25th, 2015
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5.  
  6. struct person
  7. {
  8.     char name[30];
  9.     int age;
  10. };
  11.  
  12. int hasonlit (const void *p1, const void*p2)
  13. {
  14. struct person pers_1 = *(const struct person *)p1;
  15. struct person pers_2 = *(const struct person *)p2;
  16. if (pers_1.age > pers_2.age)
  17.     return -1;
  18. if (pers_1.age < pers_2.age)
  19.     return 1;
  20.  
  21. if (pers_1.age == pers_2.age)
  22.     return strcmp(pers_1.name, pers_2.name);
  23. }
  24.  
  25. struct person *foo(char *fajlnev, int kor)
  26. {
  27.  
  28.  
  29. FILE *f = fopen (fajlnev, "rb");
  30. struct person pers;
  31. struct person *tomb;
  32. int db=0;
  33.  
  34. while (fread(&pers, sizeof(pers),1,f) == 1)
  35. if ( pers.age <= kor )
  36.     ++db;
  37.  
  38. tomb = malloc (db*sizeof(pers)+1);
  39. rewind(f);
  40. db=0;
  41.  
  42. while (fread(&pers, sizeof(pers),1,f) == 1)
  43. if ( pers.age <= kor )
  44.     tomb[db++] = pers;
  45.  
  46. qsort (tomb,db, sizeof(pers), hasonlit);
  47. memset(tomb[db+1].name, 0, 30);
  48.  
  49. return tomb;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement