Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- typedef struct element {
- char *naziv;
- int procenat;
- }Element;
- typedef struct cvor {
- Element clanak;
- char *reklama;
- struct cvor *sledeci;
- } stranica;
- char* ucitaj(char* p) {
- char c;
- int i = 0;
- char *pom;
- while ((c = getchar()) != '\n') {
- if (i % 10 == 0) {
- pom = realloc(p, (i + 10) * sizeof(char));
- if (pom == NULL) {
- printf("Neuspesna realokacija");
- exit(1);
- }
- else
- p = pom;
- }
- p[i++] = c;
- }
- pom = realloc(p, (i + 1) * sizeof(char));
- if (pom == NULL) {
- printf("Neuspesna realokacija");
- exit(1);
- }
- else
- p = pom;
- p[i] = '\0';
- return p;
- }
- stranica* citaj(stranica *p, int n) {
- stranica *novi, *stari;
- p = (stranica*)malloc(sizeof(stranica));
- p->sledeci = NULL;
- int i;
- for (i = 0; i < n; i++) {
- novi = calloc(1, sizeof(stranica));
- printf("%d. Naziv: \n", i + 1);
- novi->clanak.naziv = ucitaj(novi->clanak.naziv);
- printf("%d. Reklama: \n", i + 1);
- novi->reklama = ucitaj(novi->reklama);
- printf("%d. Prosek: \n", i + 1);
- scanf("%d", &novi->clanak.procenat);
- getchar();
- novi->sledeci = p;
- p = novi;
- }
- return p;
- }
- void stampaj(stranica *p) {
- while (p->sledeci != NULL) {
- puts(p->clanak.naziv);
- printf(" %d ", p->clanak.procenat);
- puts(p->reklama);
- p = p->sledeci;
- }
- }
- stranica *brisi(stranica *p) {
- stranica *stari;
- while (p) {
- stari = p;
- p = p->sledeci;
- free(stari);
- }
- }
- int main() {
- stranica *glava = NULL;
- int izbor, n;
- while (1) {
- printf("\n1. Ucitavanje liste\n"
- "2. Stampanje liste\n"
- "3. Brisanje liste\n"
- "4. Ubacivanje elementa na pocetak liste\n"
- "5. Ubacivanje elementa na kraj liste\n"
- "6. Izbacivanje proizvoljnog elementa iz liste\n"
- "7. Obrada\n"
- "8. Ispis nakon obrade\n"
- "0. Izlaz iz programa\n"
- );
- scanf("%d", &izbor);
- switch (izbor) {
- case 0: printf("\n Uspesno ste izasli iy programa \n");
- exit(1);
- case 1:
- printf("Broj elemenata: ");
- scanf("%d", &n);
- getchar();
- glava = citaj(glava, n);
- break;
- case 2:
- stampaj(glava);
- break;
- case 3:
- brisi(glava);
- break;
- /*case 4:
- break;
- case 5:
- break;
- case 6:
- break;
- case 7:
- break;
- case 8:
- break;*/
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement