Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. int cleanDrivers(PoliceDatabase * database, Driver ** arr){
  2. int dirty = 0;
  3. int index = 0;
  4. //printf("begin\n");
  5. for (int i = 0; i < database->numDrivers; i++){
  6. //printf("driver index = %d\n", i);
  7. for (int j = 0; j < database->numInfractions; j++){
  8. if(strcmp(database->infractions[j].driver->license, database->drivers[i].license) == 0){
  9. dirty++;
  10. break;
  11. }
  12. }
  13. }
  14. //printf("after dirty count\n");
  15. int count = (database->numDrivers)-dirty;
  16. //printf("count = %d\n", count);
  17. if (count != 0){
  18. Driver** drivers = (Driver **)malloc((count)*sizeof(Driver *));
  19. if (drivers == NULL){ return 0;}
  20. /*
  21. for (int i = 0; i < count; i++){
  22. drivers[i] = (Driver *)malloc(sizeof(Driver));
  23. if(drivers[i] == NULL) return 0;
  24. }
  25. */
  26.  
  27. //printf("after alloc\n");
  28.  
  29. for (int i = 0; i < database->numDrivers; i++){
  30. char flag = 0;
  31. //printf("current driver license = %s\n", database->drivers[i].license);
  32. for (int j = 0; j < database->numInfractions; j++){
  33. if(strcmp(database->infractions[j].driver->license, database->drivers[i].license) == 0){
  34. printf("found dirty\n");
  35. flag = 1;
  36. break;
  37. }
  38. }
  39. //printf("checking before add driver index = %d\n", i);
  40. //printf("checking initial cleans = %d\n", index);
  41. if (flag == 0){
  42. //printf("%d\n", index);
  43. printf("license of driver being added = %s\n", database->drivers[i].license);
  44. drivers[index++] = &database->drivers[i];
  45. //printf("%s\n", drivers[index-1]->name);
  46. if(index >= count){
  47. //printf("breaking\n");
  48. break;
  49. }
  50. }
  51. //printf("current number of cleans = %d\n", index);
  52. }
  53. //printf("before setting param\n");
  54. printf("last clean driver = %s\n", drivers[index-1]->license);
  55. *arr = *drivers;
  56. }
  57. //printf("before returning\n");
  58. return count;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement