Listy C dodanie do listy oraz wypisanie jej.

0

Cześć. Ktoś mógł by napisać w czym problem? Wybaczcie, ale te listy dla mnie to czarna magia ;/

typedef struct lista{
int x;
struct lista *nastepny;
} el_listy;

void wypisz_liste(el_listy *lista)
{
  el_listy *wsk=lista;
  while(wsk !=NULL)
    {
    printf("%d", wsk->x);
    wsk=wsk->nastepny;
    }
}
void dodajdo_listy(el_listy *lista, unsigned long liczba)
{
  el_listy *wsk, *nowy;
  wsk=lista;
  while(wsk->nastepny !=NULL)
    {
    wsk=wsk->nastepny;
    }

  nowy=malloc(sizeof(el_listy));
  printf("Podaj jaka liczbe chcesz dodac do listy: ");
  scanf("%d",&liczba);
  nowy->x=liczba;
  nowy->nastepny=NULL;
  wsk->nastepny=nowy;
int main()
{
    dodajdo_listy();
    wypisz_liste();
    return 0;
} 
0

A to nic dziwnego że listy dla ciebie to czarna magia, ponieważ czarną magią dla ciebie jest generalnie cały język C.
Czy nie widzisz braku nawiasu?

0

Oczywiście, że dostałem, próbowałem wykminić, ale na próżno.

1

Proszę, mam dzisiaj dobry poranek. Generalnie masz dużo błędów, tak na szybko z krótkim komentarzem:

 
#include <stdio.h>
#include <stdlib.h>

struct lista
{
    int x;
    struct lista *nastepny;
};

typedef struct lista el_listy;

void wypisz_liste(el_listy *lista)
{
  el_listy *wsk=lista;
  while(wsk !=NULL)
    {
    printf(" %d ", wsk->x);
    wsk=wsk->nastepny;
    }
}

void dodaj_do_listy(el_listy **glowa, int k)
{
  el_listy * p, * nowy;

  nowy = malloc(sizeof(el_listy));  // tworzymy nowy element
  nowy->nastepny = NULL;   // Ustawiamy NULL na nastepnika od naszego nowego
  nowy->x = k;   // w nowym elemencie listy wpisujemy wartosc
  p = (*glowa);
  if(p)  // ta petla przesuwamy sie na koniec
  {
     while(p->nastepny) p = p->nastepny;
     p->nastepny = nowy;
  }
  else *glowa = nowy; // chyba ,że jest to pierwszy element
}


int main()
{
    el_listy * L1 = NULL; // musisz stworzyc wskaźnik na stukture

    dodaj_do_listy(&L1,1); // przy wywolaniu funkcji musisz podac do CZEGO ma dodać i CO
    dodaj_do_listy(&L1,2);
    dodaj_do_listy(&L1,3);
    wypisz_liste(L1); // przy wywolaniu podajesz Co konkretnie ma wypisać

    return 0;
}
0

Dziękuje Dobry Człowieku :)

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