Guest User

Untitled

a guest
Jan 23rd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. struct Osoba
  7. {
  8. char Meno[256], Priezvisko[256];
  9. struct Osoba * DalsiaOsoba;
  10. };
  11.  
  12. typedef struct Osoba Student;
  13.  
  14. int main()
  15. {
  16. Student *terajsi, * hlavicka = NULL, *dalsi;
  17. int i, pocet, j;
  18. char pom[256];
  19. pocet = 0;
  20. for(terajsi=0;terajsi==0;terajsi++);
  21. while(terajsi>0)
  22. {
  23. terajsi = (Student *)malloc(sizeof(Student));
  24. scanf("%s %s", terajsi->Meno, terajsi->Priezvisko);
  25. terajsi->DalsiaOsoba = hlavicka;
  26. if (!strcmp(terajsi->Meno, "BYE") || !strcmp(terajsi->Priezvisko, "BYE") || getchar() == EOF)
  27. break;
  28. hlavicka = terajsi;
  29. pocet++;
  30. }
  31. dalsi = hlavicka;
  32. for (i = 0; i < pocet; i++)
  33. {
  34. terajsi = hlavicka;
  35. for (j = 0; j < i; j++)
  36. {
  37. //printf ("Porovnavam %s a %s\ni: %d, j: %d\n", terajsi->Priezvisko, dalsi->Priezvisko, i ,j);
  38. if (strcmp(terajsi->Priezvisko, dalsi->Priezvisko) > 0 || (strcmp(terajsi->Priezvisko, dalsi->Priezvisko) == 0 && strcmp(terajsi->Meno, dalsi->Meno) > 0))
  39. {
  40. //printf("%s je viac ako %s\n", terajsi->Priezvisko, dalsi->Priezvisko);
  41. strcpy(pom, terajsi->Priezvisko);
  42. //printf("Pom: %s, terajsi: %s\n", pom, terajsi->Priezvisko);
  43. strcpy(terajsi->Priezvisko, dalsi->Priezvisko);
  44. //printf("terajsi: %s, dalsi: %s\n", terajsi->Priezvisko, dalsi->Priezvisko);
  45. strcpy(dalsi->Priezvisko, pom);
  46. //printf("dalsi %s, terajsi: %s\n", dalsi->Priezvisko, terajsi->Priezvisko);
  47. strcpy(pom, terajsi->Meno);
  48. strcpy(terajsi->Meno, dalsi->Meno);
  49. strcpy(dalsi->Meno, pom);
  50. //printf("Po novom %s, %s\n", terajsi->Priezvisko, dalsi->Priezvisko);
  51. }
  52. terajsi = terajsi->DalsiaOsoba ;
  53. }
  54. dalsi = dalsi->DalsiaOsoba ;
  55. }
  56. terajsi = hlavicka;
  57. while(terajsi) {
  58. printf("%s", terajsi->Meno);
  59. printf(" %s\n", terajsi->Priezvisko);
  60. dalsi = terajsi;
  61. terajsi = terajsi->DalsiaOsoba ;
  62. free(dalsi);
  63. }
  64. return 0;
  65. }
Add Comment
Please, Sign In to add comment