manioor 2 Napisano 7 Listopada 2009 Udostępnij Napisano 7 Listopada 2009 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 == Cytuj Link to post Share on other sites
myrkul 0 Napisano 29 Listopada 2009 Udostępnij Napisano 29 Listopada 2009 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++ Pozdro Cytuj Link to post Share on other sites
_nick_ 19 Napisano 29 Listopada 2009 Udostępnij Napisano 29 Listopada 2009 dokładnie tak jak napisał myrkul, operator = i == to zupełnie inne rzeczy Cytuj Link to post Share on other sites
Recommended Posts
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ą.