• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapis funkcji Lista dodatnie(Lista wejscie, struct numery) z jednym parametrem, czyli Lista dodatnie(Lista wejscie)

Object Storage Arubacloud
0 głosów
108 wizyt
pytanie zadane 12 stycznia 2016 w C i C++ przez martix3 Użytkownik (690 p.)

Witam! mam do napisania program, który dodaje liczby na listę, a następnie przenosi na drugą listę tylko liczby dodatnie i je wyświetla. Wszystko byłoby dobrze, gdyby nie to, że w poleceniu było napisane wyraźnie, żeby funkcja Lista dodatnie zależała tylko od parametru (Lista wejscie). U mnie w programie jest jeszcze zmienna struct numery.

Pomożecie mi to zamienić, żeby wszystko działało dobrze?

#include<iostream>
#include<fstream>
#include<stdlib.h>
#include<string.h>
using namespace std;
struct numery
{
    int liczba;
    };

    typedef struct element
    { struct numery p;
    struct element *next;
    }Element;
    typedef Element *Lista;


    void wyswietl(Lista a)
    {
        cout<<"\n";
        while(a)
        {
                       cout<<(a->p).liczba<<endl;
            a=a->next;
            cout<<"\n";
        }
    }
Lista dodaj_ost(struct numery a, Lista b)
{
    Lista d;
    Lista pocz=b;
    d=new Element;
    d->p=a;
    d->next=NULL;
    if(!b)
    return d;
    Lista c;
    while(b)
    {
        c=b;
        b=b->next;
    } c->next=d;
    return pocz;
}
Lista dodatnia(Lista wejscie, struct numery a)
{
Lista d, b=NULL;
    while(!NULL)
{if((wejscie->p.liczba)>0)
      Lista pocz=b;
    d=new Element;
    d->p=a;
    d->next=NULL;
    if(!b)
    return d;
    Lista c;
    while(b)
    {
        c=b;
        b=b->next;
    } c->next=d;
   wejscie->next;
}
return d;
}

    int main()
    {Lista b=NULL; Lista d=NULL; int x; struct numery z;
    while(1)
    { cout<<"\n";
        cout<<"Wybierz opcje:\n";

           cout<<"1-wyswietl elementy listy\n";
            cout<<"2-dodaj element  na koniec listy\n";
             cout<<"3-wybierz dodatnie\n";


    cin>>x;
    switch(x)
    {        case 0:return 0;

             case 1:{wyswietl(b);break;}
             case 2:{cout<<"Podaj numer indeksu:\n";
             cin>>z.liczba;
             b=dodaj_ost(z,b); break;}
             case 3:{d=dodatnia(b, z);
             wyswietl(d);break;}

             default:return 0;
    }
    }

    return 0;
    }

 

1 odpowiedź

0 głosów
odpowiedź 12 stycznia 2016 przez niezalogowany
Nic trudnego, po prostu do tej funkcji listującej liczby dodatnie przekaż jedynie wskaźnik na listę ze wszystkimi numerami.

Podobne pytania

0 głosów
1 odpowiedź 171 wizyt
pytanie zadane 23 grudnia 2016 w C i C++ przez niezalogowany
+1 głos
1 odpowiedź 5,291 wizyt
0 głosów
1 odpowiedź 97 wizyt
pytanie zadane 24 stycznia 2016 w Rozwój zawodowy, nauka, praca przez llukasz Początkujący (350 p.)

92,551 zapytań

141,399 odpowiedzi

319,530 komentarzy

61,937 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...