Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include<string.h>
- struct auta {
- char kategoria[50];
- char znacka[50];
- char predajca[100];
- int cena;
- int rok_vyroby;
- char stav_vozidla[200];
- struct auta *dalsia;
- };
- void pridaj(struct auta **zac, char kat[], char zn[], char pr[], int cen,
- int rok, char stav[]) {
- struct auta *posledny = *zac;
- struct auta *novy = malloc(sizeof(struct auta));
- strcpy(novy->kategoria, kat);
- strcpy(novy->znacka, zn);
- strcpy(novy->predajca, pr);
- novy->cena = cen;
- novy->rok_vyroby = rok;
- strcpy(novy->stav_vozidla, stav);
- novy->dalsia = NULL;
- if (*zac == NULL) {
- *zac = novy;
- return;
- }
- while (posledny->dalsia != NULL) {
- posledny = posledny->dalsia;
- }
- posledny->dalsia = novy;
- }
- void nacitanie(struct auta **zac) {
- char kat[50], zn[50], pr[100], stav[200];
- int cen, rok, count = 0;
- FILE *f1 = fopen("auta.txt", "r");
- if (f1 == NULL) {
- printf("Neexistuje");
- exit(0);
- }
- while (fscanf(f1, "$ %[^\n]\n%[^\n]\n%[^\n]\n%d\n%d\n%[^\n] ", kat, zn, pr,
- &cen, &rok, stav) != EOF) {
- //printf("%s %s %s %d %d %s\n", kat, zn, pr, cen, rok, stav);
- count++;
- pridaj(zac, kat, zn, pr, cen, rok, stav);
- }
- printf("Nacitalo sa %d zaznamov", count);
- fclose(f1);
- }
- void vypis(struct auta *zac) {
- int count = 1;
- while (zac != NULL) {
- printf(
- "%d.\nKategoria: %s\nZnacka: %s\nPredajca: %s\nCena: %d\nRok vyroby: %d\nStav vozidla: %s\n",
- count++, zac->kategoria, zac->znacka, zac->predajca, zac->cena,
- zac->rok_vyroby, zac->stav_vozidla);
- zac = zac->dalsia;
- }
- }
- struct auta *najdi_poziciu(struct auta *zac, int k) {
- int c = 1;
- struct auta *novy = zac;
- while (novy != NULL) {
- if (c == k) {
- return novy;
- }
- c++;
- novy = novy->dalsia;
- }
- return NULL;
- }
- void pridavanie(struct auta **zac) {
- if(*zac == NULL) return;
- int k;
- scanf("%d ", &k);
- if(k <= 0) return;
- struct auta * novy = malloc(sizeof(struct auta));
- scanf("%[^\n] %[^\n] %[^\n] %d %d %[^\n]", novy->kategoria, novy->znacka,
- novy->predajca, &novy->cena, &novy->rok_vyroby, novy->stav_vozidla);
- if(novy == NULL) return;
- if(k == 1) {
- novy->dalsia = *zac;
- *zac = novy;
- return;
- }
- int i = 0;
- struct auta * sucasny = *zac;
- while(sucasny->dalsia != NULL && i < k - 2) {
- sucasny = sucasny->dalsia;
- i ++;
- }
- novy->dalsia = sucasny->dalsia;
- sucasny->dalsia = novy;
- }
- int main() {
- char k;
- struct auta *zac = NULL;
- while (scanf(" %c", &k) && k != 'k')
- switch (k) {
- case 'n':
- nacitanie(&zac);
- break;
- case 'v':
- vypis(zac);
- break;
- case 'p':
- pridavanie(&zac);
- break;
- default:
- printf("Zly vstup\n");
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement