Strona 1 z 1

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

: 14 sty 2013, o 08:42
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.

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

: 14 sty 2013, o 08:50
autor: Ser Cubus
a spróbuj dać warunek w while

Kod: Zaznacz cały

glowa = glowa->nast->nast != NULL

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

: 14 sty 2013, o 13:01
autor: anilahcim
To nie zadziała - wtedy nie będzie sumowany ostatni albo przedostatni element.

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

: 14 sty 2013, o 17:47
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

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

: 14 sty 2013, o 18:23
autor: royas
Będzie dobre?

Kod: Zaznacz cały

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