Skocz do zawartości

[zapytania] c++ - błąd non-Ivalue assignment.


Recommended Posts

zaczynam przygode z c++ musze troche podgonic by dawac sobie rade na studiach. poki co staram sie pojac podstawy i mam pytanie

 

chce zrobic date dnia nastepnego z uwzglednieniem roku przestepnego

 

i przy warunku if

 

if ((miesiac = 2) && (((rok%4=0)&& (rok%100=0)) || (rok%400=0)))

 

wyskakuja mi bledy

 

non-Ivalue assignment

 

i nie bardzo wiem jak sobie z tym poradzic, czytalem na googlach ale tam nikt nie opisywal tego bledu.

 

edit:

 

skumalem, bo ja przypisywalem a nie porownywalem za pomoca ==

Link to post
Share on other sites
  • 4 tygodnie później...

Witam, problem juz pewnie rozwiązałeś ale może sie innym przyda.

 

l-value, czyli l-wartość i tu def: "jeśli cos może stać po lewej stronie znaku = (czyli po lewej stronie operatora przypisania), to takie cos nazywamy l-wartością." Najprościej to na przykładzie wytłumaczyć:

i = 10; to jest ok

10 = i; to juz ok nie jest, tu Ci wyskoczy error: "non-Ivalue assignment" bo do 10 nie możesz przypisać zmiennej i.

 

Teraz gdzie masz taką sytuację w kodzie:

( rok % 4 = 0 ) jak to działa, najpierw obliczasz resztę z dzielenia rok % 4, wynikiem tego działania jest liczba, i dalej właśnie robisz błąd bo do tej liczby przypisujesz inna liczbę. Np.: jeśli wynikiem tego działania ( rok % 4 ) będzie 2 to ty piszesz 2 = 0.

 

Błąd popełniłeś niezamierzenie, mianowicie chciałeś sprawdzić czy liczba z tego działania ( rok % 4 ) będzie równa 0? Jeśli tak to zamiast = (operatora przypisania) powinieneś użyć == (operatora porównania), np.:

i = 5; tu przypisujesz zmiennej i wartość 5

i == 5; tu sprawdzasz czy zmienna i ma wartość 5.

 

Mam nadzieje, ze pomogłem, miłej zabawy z c++ :wariat:

Pozdro

Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...