Quantcast
Viewing all articles
Browse latest Browse all 21942

Dodawanie elementu do listy jednokierunkowej w C

Witam. Mam problem z pewnym programem. Zadanie polega na stworzeniu oprogramowania, które umożliwia prowadzenie spisu klientów punktu obrotu telefonami komórkowymi. Klient jest opisany imieniem , nazwiskiem, listą zakupionych telefonów oraz łączną kwotą , na którą wykonał zakupy. Program musi wykonywać kilka funkcji , ale mi chodzi głównie o dodawanie elementów do listy. Napisałam coś takiego:

void dodaj(struct Osoba** lista,struct Osoba* nowa)
{
        nowa->next=NULL;

        if((*lista)==NULL)
        {
        *lista = nowa;
        }
        else
        {
            Osoba* wsk = *lista;
            wsk = wsk->next;
            wsk->next = nowa;

         }
}

void dodajOsobe(struct Osoba** lista)
{
     char line[500];

     Osoba* nowa = (Osoba*)malloc(sizeof(Osoba));
     printf("Podaj imie: ");
     scanf("%s", nowa->imie);

     printf("Podaj nazwisko: ");
     scanf("%s", nowa->nazwisko);

     printf("Podaj nazwe telefonu: ");
     scanf("%s", nowa->nazwaTel);

     printf("Podaj kwote, ktora klient wydal na zakupy: ");
     scanf("%f",&(nowa->kwota));

     gets(line);
     gets(line);

     dodaj(lista, nowa);
}

Problem polega na tym , że po wpisaniu danych drugiego klienta program się zawiesza.. Na pewno namieszałam we wskaźnikach... Jestem początkująca i bardzo proszę o pomoc .. :(

Viewing all articles
Browse latest Browse all 21942

Trending Articles