Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<string.h>
  4.  
  5. struct auta {
  6. char kategoria[50];
  7. char znacka[50];
  8. char predajca[100];
  9. int cena;
  10. int rok_vyroby;
  11. char stav_vozidla[200];
  12. struct auta *dalsia;
  13. };
  14.  
  15. void pridaj(struct auta **zac, char kat[], char zn[], char pr[], int cen,
  16. int rok, char stav[]) {
  17. struct auta *posledny = *zac;
  18. struct auta *novy = malloc(sizeof(struct auta));
  19. strcpy(novy->kategoria, kat);
  20. strcpy(novy->znacka, zn);
  21. strcpy(novy->predajca, pr);
  22. novy->cena = cen;
  23. novy->rok_vyroby = rok;
  24. strcpy(novy->stav_vozidla, stav);
  25. novy->dalsia = NULL;
  26. if (*zac == NULL) {
  27. *zac = novy;
  28. return;
  29. }
  30. while (posledny->dalsia != NULL) {
  31. posledny = posledny->dalsia;
  32. }
  33. posledny->dalsia = novy;
  34. }
  35.  
  36. void nacitanie(struct auta **zac) {
  37. char kat[50], zn[50], pr[100], stav[200];
  38. int cen, rok, count = 0;
  39. FILE *f1 = fopen("auta.txt", "r");
  40. if (f1 == NULL) {
  41. printf("Neexistuje");
  42. exit(0);
  43. }
  44.  
  45. while (fscanf(f1, "$ %[^\n]\n%[^\n]\n%[^\n]\n%d\n%d\n%[^\n] ", kat, zn, pr,
  46. &cen, &rok, stav) != EOF) {
  47. //printf("%s %s %s %d %d %s\n", kat, zn, pr, cen, rok, stav);
  48. count++;
  49. pridaj(zac, kat, zn, pr, cen, rok, stav);
  50. }
  51. printf("Nacitalo sa %d zaznamov", count);
  52. fclose(f1);
  53. }
  54. void vypis(struct auta *zac) {
  55. int count = 1;
  56. while (zac != NULL) {
  57. printf(
  58. "%d.\nKategoria: %s\nZnacka: %s\nPredajca: %s\nCena: %d\nRok vyroby: %d\nStav vozidla: %s\n",
  59. count++, zac->kategoria, zac->znacka, zac->predajca, zac->cena,
  60. zac->rok_vyroby, zac->stav_vozidla);
  61. zac = zac->dalsia;
  62. }
  63. }
  64. struct auta *najdi_poziciu(struct auta *zac, int k) {
  65. int c = 1;
  66. struct auta *novy = zac;
  67. while (novy != NULL) {
  68. if (c == k) {
  69. return novy;
  70. }
  71. c++;
  72. novy = novy->dalsia;
  73. }
  74. return NULL;
  75. }
  76. void pridavanie(struct auta **zac) {
  77. if(*zac == NULL) return;
  78.  
  79. int k;
  80. scanf("%d ", &k);
  81.  
  82. if(k <= 0) return;
  83.  
  84. struct auta * novy = malloc(sizeof(struct auta));
  85. scanf("%[^\n] %[^\n] %[^\n] %d %d %[^\n]", novy->kategoria, novy->znacka,
  86. novy->predajca, &novy->cena, &novy->rok_vyroby, novy->stav_vozidla);
  87.  
  88. if(novy == NULL) return;
  89.  
  90. if(k == 1) {
  91. novy->dalsia = *zac;
  92. *zac = novy;
  93. return;
  94. }
  95.  
  96. int i = 0;
  97.  
  98. struct auta * sucasny = *zac;
  99.  
  100. while(sucasny->dalsia != NULL && i < k - 2) {
  101. sucasny = sucasny->dalsia;
  102. i ++;
  103. }
  104.  
  105. novy->dalsia = sucasny->dalsia;
  106. sucasny->dalsia = novy;
  107. }
  108. int main() {
  109. char k;
  110. struct auta *zac = NULL;
  111. while (scanf(" %c", &k) && k != 'k')
  112. switch (k) {
  113. case 'n':
  114. nacitanie(&zac);
  115. break;
  116. case 'v':
  117. vypis(zac);
  118. break;
  119. case 'p':
  120. pridavanie(&zac);
  121. break;
  122. default:
  123. printf("Zly vstup\n");
  124. break;
  125. }
  126. return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement