fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. typedef struct os{
  6. char imie[20];
  7. struct os *nast;
  8. }osoba;
  9.  
  10. void lista(osoba *o)
  11. {
  12.  
  13. while(1)
  14. {
  15. printf("%s\n",o->imie);
  16. if(o->nast != NULL)
  17. {
  18. o=o->nast;
  19. }
  20. else
  21. {
  22. break;
  23. }
  24.  
  25. }
  26. }
  27.  
  28. void lista_dodaj(osoba *o) //Funkcja dodajaca osobe na koncu
  29. {
  30.  
  31. while(1)
  32. {
  33. //printf("%s \n",o->imie);
  34. if(o->nast != NULL) //Przeskoczenie do nast pozycji
  35. {
  36. o=o->nast;
  37. }
  38. else //Na koncu
  39. {
  40. o->nast=malloc(sizeof(o));
  41. o=o->nast;
  42. printf("Podaj nazwe nowej osoby: ");
  43. scanf("%s",o->imie);
  44. break;
  45. }
  46.  
  47. }
  48. }
  49.  
  50.  
  51. int main()
  52. {
  53. osoba o1;
  54. strcpy(o1.imie,"Maciej");
  55. o1.nast=NULL;
  56.  
  57. osoba o2;
  58. strcpy(o2.imie,"Mateusz");
  59. o2.nast=NULL;
  60.  
  61. osoba o3;
  62. strcpy(o3.imie,"Dawid");
  63. o3.nast=NULL;
  64.  
  65. osoba o4;
  66. strcpy(o4.imie,"Bartek");
  67. o4.nast=NULL;
  68.  
  69. o1.nast=&o2;
  70. o2.nast=&o3;
  71. o3.nast=&o4;
  72.  
  73. lista(&o1);
  74. printf("\n");
  75. lista_dodaj(&o1);
  76. lista_dodaj(&o1);
  77. printf("\n");
  78. lista(&o1);
  79.  
  80. return 0;
  81. }
Success #stdin #stdout 0s 2304KB
stdin
Standard input is empty
stdout
Maciej
Mateusz
Dawid
Bartek

Podaj nazwe nowej osoby: Podaj nazwe nowej osoby: 
Maciej
Mateusz
Dawid
Bartek