Mam problem z kolejnym zadaniem i proszę o pomoc, nie jestem pewna co źle robię.
Przytaczam treść zadania:
Napisz funkcję która w liście jednokierunkowej zawierającej liczby i zaczynającej się pod jakimś adresem dodaje po każdym elemencie zawierającym liczbę ujemną element zawierający tę liczbę pomnożoną przez jakąś wartość, a na koniec zwraca liczbę dodanych elementów.
Do tej pory zrobiłam coś takiego:
bool ujemna(element_listy* adres)
{
bool ujemna=true;
while(adres)
{
if ((adres->liczba)>0)
ujemna=false;
adres=adres->wsk_nastepnika;
}
return ujemna;
}
int mnoz(element_listy* adres, int wartosc)
{
int liczba;
if(ujemna(adres))
{
liczba=adres->liczba*wartosc;
}
return liczba;
}
int dodaj(element_listy* adres)
{
element_listy* pomnozona=new element_listy;
pomnozona->liczba=mnoz(adres,5);
while(adres)
{
if(ujemna(adres))
{
pomnozona->wsk_nastepnika=adres->wsk_nastepnika;
adres->wsk_nastepnika =pomnozona;
}
}
}
Proszę o pomoc bo nie wiem jak to rozwiązać.
C++
(używasz operatoranew
, więc domniemywam, że C++, a nie C).