Lista dwukierunkowa. Zadanie

0

Czy mógłby ktoś pomóc napisać program (lista dwukierunkowa)?

Listę tworzy sam użytkownik: powinien wprowadzić swoje imię i jakąś wiadomość. Liczba słów = liczba takich wiadomości (np. Ania; Ide dzisiaj do parku. Liczba wiadomosci - 5). Następnie, po stworzeniu takiej listy użytkownik powinien podać numer konkretnej wiadomości i program ją usuwa. Na końcu drukuje listę bez tej wybranej, usuniętej wiadomości. Proszę pomocy.

0

Pokaż, co już masz i napisz, w czym Ci konkretnie należy pomóc. Albo poproś o przeniesienie tematu do Ogłoszeń drobnych i podaj oferowaną stawkę.

0

Mam taki program:

// Copyright 2017
#include <stdio.h>
#include <string.h>

#include "komentarze.h"

Wiadomosc * WiadomoscWprowadzenie() {
Wiadomosc * wiadomosc = (Wiadomosc *)malloc(sizeof(Wiadomosc));
int i = 0;
char tymczasowy_symbol;
printf("Wprowadz imie:\n");
while(scanf("%c", &tymczasowy_symbol) && tymczasowy_symbol != 10 && i < 20) {
wiadomosc->uzytkownik[i] = tymczasowy_symbol;
i++;
}
i = 0;
printf("Wprowadz wiadomosc uzytkownika:\n");
while(scanf("%c", &tymczasowy_symbol) && tymczasowy_symbol != 10 && i < 120) {
wiadomosc->wiadomosc[i] = tymczasowy_symbol;
i++;
}
return wiadomosc;
}

int main() {

        Wiadomosc * wiadomosc = WiadomoscWprowadzenie();
DrukowacWiadomosc(wiadomosc);
free(wiadomosc);

return 0;

}

0

Ten "komentarze.h" to jest:

#ifndef KOMENTARZE_H
#define KOMENTARZE_H

#include <stdlib.h>
#include <time.h>

#define kNz 140
#define kNv 20
#define kN 160
#define M 90972

typedef struct {
char uzytkownik[kNv];
char wiadomosc[kNz];
} Wiadomosc;

Wiadomosc * PrzypadkowaWiadomosc() {
int i = 0;
Wiadomosc *wskaznik = malloc(kN);
if(!wskaznik) {
return NULL;
}
FILE *ptr;
ptr = fopen("komentarze.bin","rb");
srand(time(NULL));

int przypadkowy = rand() % M;
fseek(ptr, przypadkowy * (kN + 2), SEEK_SET);
fread(wskaznik, kN, 1, ptr);
fclose(ptr);

return wskaznik;

}

void DrukowacWiadomosc(Wiadomosc * wskaznik) {
int i = 0;
printf("*****************************************\n");
printf("Uzytkownik: ");
for(i = 0; i < kNv; i++) {
printf("%c", wskaznik->uzytkownik[i]);
}
printf("\n");
for(i = 0; i < kNz; i++) {
printf("%c", wskaznik->wiadomosc[i]);
}
printf("\n");
printf("-----------------------------------------\n");
}

#endif

1 użytkowników online, w tym zalogowanych: 0, gości: 1