Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. /* tworze ksiazke telefoniczna o parametrach ktore sa pod spodem, uzytkownik po wpisaniu n numerow ma do wyboru sortowanie
  7. wedlug nazwisk lub wedlug numerow */
  8. typedef struct ksiazka
  9. {
  10. char imie[51];
  11. char nazwisko[51];
  12. char prefix[50];
  13. int numer;
  14. char plec[50];
  15.  
  16. }ksiazka;
  17.  
  18. ksiazka osoby[50];
  19.  
  20. int n, i;
  21. printf("podaj liczbe numerow ktore chcesz wprowadzic: ");
  22. scanf("%d", &n);
  23. while(getchar() != '\n');
  24.  
  25. // pobieram dane
  26. for(i=0; i<n; i++)
  27. {
  28. printf("podaj Imie: ");
  29. scanf("%s", &osoby[i].imie);
  30. while(getchar() != '\n');
  31.  
  32. printf("podaj Nazwisko: ");
  33. scanf("%s", &osoby[i].nazwisko);
  34. while(getchar() != '\n');
  35.  
  36. printf("podaj prefix: ");
  37. scanf("%s", &osoby[i].prefix);
  38. while(getchar() != '\n');
  39.  
  40. printf("podaj numer: ");
  41. scanf("%d", &osoby[i].numer);
  42. while(getchar() != '\n');
  43.  
  44. printf("podaj plec: ");
  45. scanf("%s", &osoby[i].plec);
  46. while(getchar() != '\n');
  47. }
  48. int k=0;
  49. int o;
  50. char l[50];
  51. int dzialanie;
  52. printf("\n jesli chcesz posortowac wedlug numerow -> 1 , wedlug nazwisk ->2 \n");
  53. scanf("%d", &dzialanie);
  54. switch(dzialanie)
  55. {
  56.  
  57. case 1:
  58. {
  59.  
  60. do
  61. {
  62. k=0;
  63. for(i=0;i<n-1;i++)
  64. {
  65. if(osoby[i].numer > osoby[i+1].numer )
  66. {
  67. o = osoby[i].numer;
  68. osoby[i].numer = osoby[i+1].numer ;
  69. osoby[i+1].numer = o;
  70. k=1;
  71.  
  72.  
  73. }
  74. }
  75. }while(k==1);
  76.  
  77. }
  78. break;
  79.  
  80. char z;
  81. case 2:
  82. {
  83. do
  84. {
  85. k=0;
  86. for(i=0;i<n-1;i++)
  87. {
  88. if(strcmp(&osoby[i].nazwisko, &osoby[i+1].nazwisko) > 0)
  89. {
  90. /* tutaj sortowalem metoda z uzyciem memcpy ale po prostu mi pozniej nie wchodzi do printf'ow i nie wypisuje danych
  91. */
  92. /*
  93. memcpy(l, osoby[i+1].nazwisko, sizeof(osoby[i+1].nazwisko));
  94. memcpy(osoby[i+1].nazwisko, osoby[i].nazwisko, sizeof(osoby[i].nazwisko));
  95. memcpy(osoby[i].nazwisko, l, sizeof(l));
  96. */
  97.  
  98. z = osoby[i].nazwisko ;
  99. osoby[i].nazwisko = osoby[i+1].nazwisko ;
  100. osoby[i+1].nazwisko = z ;
  101. k=1;
  102. }
  103.  
  104. }
  105. }while(k==1);
  106.  
  107. }
  108. }
  109. int g=0;
  110. for(g=0;g<n;g++)
  111. {
  112. printf("safasfasfasfas");
  113. puts("jestem");
  114. printf("\n%s", osoby[g].nazwisko);
  115. printf("\n%s", osoby[g].imie);
  116. printf("\n%s", osoby[g].prefix);
  117. printf("\n%d", osoby[g].numer);
  118. printf("\n%s\n\n", osoby[g].plec);
  119.  
  120.  
  121. }
  122.  
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement