[C++] lista jednokierunkowa, suma wartości elementów (co 2)

anilahcim
Użytkownik
Użytkownik
Posty: 209
Rejestracja: 13 lip 2012, o 14:32
Płeć: Kobieta
Lokalizacja: Pcim
Podziękował: 107 razy

[C++] lista jednokierunkowa, suma wartości elementów (co 2)

Post autor: anilahcim »

To mój kod:

Kod: Zaznacz cały

double suma_co2(wezel* glowa)
{
	double suma = 0;
	while(glowa->nast!=NULL)
	{
		suma += glowa->wartosc;
		glowa = glowa->nast->nast;
	}
	return suma;
}
Nie wiem, co zrobić, żeby program działał zarówno dla parzystej, jak i nieparzystej liczby elementów... Jeśli jest parzysta, program przerywa.
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[C++] lista jednokierunkowa, suma wartości elementów (co 2)

Post autor: Ser Cubus »

a spróbuj dać warunek w while

Kod: Zaznacz cały

glowa = glowa->nast->nast != NULL
anilahcim
Użytkownik
Użytkownik
Posty: 209
Rejestracja: 13 lip 2012, o 14:32
Płeć: Kobieta
Lokalizacja: Pcim
Podziękował: 107 razy

[C++] lista jednokierunkowa, suma wartości elementów (co 2)

Post autor: anilahcim »

To nie zadziała - wtedy nie będzie sumowany ostatni albo przedostatni element.
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[C++] lista jednokierunkowa, suma wartości elementów (co 2)

Post autor: Ser Cubus »

co prawda liste znam tylko z teorii, ale możesz odwoływać się do elementów w przód i w tył o ile się nie mylę, jeżeli tak to spróbuj:

Kod: Zaznacz cały

glowa = glowa->nast->nast != NULL
// cofnij głowę o 1 element
dalszy kod
royas
Użytkownik
Użytkownik
Posty: 363
Rejestracja: 24 sie 2012, o 09:27
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Pomógł: 80 razy

[C++] lista jednokierunkowa, suma wartości elementów (co 2)

Post autor: royas »

Będzie dobre?

Kod: Zaznacz cały

  
while(glowa != NULL) {
      suma += glowa->wartosc;
      glowa = glowa->nast;
      if (glowa != NULL) glowa = glowa->nast;
}
ODPOWIEDZ