Advertisement
Coriic

Dzieci

Jan 16th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. struct dzieci{
  6. char *nazwisko;
  7. int rok;
  8. struct dzieci *next;
  9. };
  10.  
  11. struct rodzic{
  12. char *nazwisko;
  13. int rok;
  14. int liczba_dzieci;
  15. struct dzieci *next;
  16. };
  17.  
  18. void dodaj_dane(struct rodzic tab[4]){
  19. int i,j, l;
  20. struct dzieci *tmp;
  21. char bufor [25];
  22. for (i=0; i<4; ++i){
  23. tab[i].next=NULL;
  24. printf("Rodzic %d.\n", i+1);
  25. if (i!=0) {getchar();}
  26. printf("Podaj nazwisko: ");
  27. fgets(bufor, 25, stdin);
  28. l=strlen(bufor)+1;
  29. (tab[i]).nazwisko=(char *)malloc(l*sizeof(char));
  30. strcpy(tab[i].nazwisko, bufor);
  31. printf("Podaj rok urodzenia: ");
  32. scanf("%d", &(tab[i].rok));
  33. printf("Podaj ilosc dzieci: ");
  34. scanf("%d", &(tab[i].liczba_dzieci));
  35. for (j=0; j<tab[i].liczba_dzieci; ++j){
  36. tmp=(struct dzieci *)malloc(sizeof(struct dzieci));
  37. printf("Podaj dane %d dziecka\n", j+1);
  38. tmp->nazwisko=(char *)malloc(l*sizeof(char));
  39. strcpy(tmp->nazwisko, tab[i].nazwisko);
  40. printf("Podaj date urodzenia: ");
  41. scanf("%d", &(tmp->rok));
  42. tmp->next=tab[i].next;
  43. tab[i].next=tmp;
  44. }
  45. }
  46. }
  47.  
  48. void wyswietl(struct rodzic tab[2]){
  49. int i;
  50. struct dzieci *tmp;
  51. for(i=0; i<4; ++i){
  52. printf("RODZIC\n");
  53. printf("Nazwisko: %s", tab[i].nazwisko);
  54. printf("Rok urodzenia: %d\n", tab[i].rok);
  55. if (tab[i].liczba_dzieci>0){
  56. printf("JEGO DZIECI\n");
  57. tmp=tab[i].next;
  58. while(tmp != NULL){
  59. printf("Nazwisko: %s", tmp->nazwisko);
  60. printf("Rok urodzin dziecka: %d\n", tmp->rok);
  61. tmp=tmp->next;
  62. }
  63. }
  64. }
  65. }
  66.  
  67. int main(void){
  68. struct rodzic tab[4];
  69. dodaj_dane(tab);
  70. wyswietl(tab);
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement