[C++] Problem z dzieleniem modulo

Mam problem z dzieleniem modulo wykonuję działanie a%10=b chce otrzymać ostatnią cyfrę liczby a a wyskakuje mi taki błąd.

C:\Users\a\Desktop\BezNazwy1.cpp In function ‘int main()’:

10 27 C:\Users\a\Desktop\BezNazwy1.cpp [Error] no match for ‘operator=’ in ‘(& std::operator<< [with _Traits = std::char_traits]((* & std::cout), ((const char*)“Obliczam”)))->std::basic_ostream<_CharT, _Traits>::operator<< with _CharT = char, _Traits = std::char_traits = (i % 10)’

10 27 C:\Users\a\Desktop\BezNazwy1.cpp [Error] candidate is:

57 11 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.6.1\include\c++\ostream std::basic_ostream& std::basic_ostream::operator=(const std::basic_ostream&)

57 11 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.6.1\include\c++\ostream no known conversion for argument 1 from ‘int’ to ‘const std::basic_ostream&’

11 6 C:\Users\a\Desktop\BezNazwy1.cpp [Error] lvalue required as left operand of assignment

15 1 C:\Users\a\Desktop\BezNazwy1.cpp [Error] expected ‘;’ before ‘return’

Serio zrobiłeś tak:

a%10=b

, czy po prostu tak Ci się napisało?

Hint: przypisanie działa “w lewą stronę”, tzn. przypisuje do zmiennej po lewej stronie to, co jest po prawo od znaku ‘=’.

Tak miałem tak zapomniałem o tym bo dopiero zaczynam się uczyć c++ a teraz wyskakuje taki błąd

C:\Users\a\Desktop\BezNazwy1.cpp In function ‘int main()’:

11 6 C:\Users\a\Desktop\BezNazwy1.cpp [Error] lvalue required as left operand of assignment

Dodane So, 10 lis 2012, 15:17

#include

using namespace std;

int main()

{

int a=0,i;

cout << "Wprowadz liczbe: ";

cin >> i;

while (a<=i)

{

a=i%10;

i=i/10;

cout << a;

}

return 0;

}

już nalazłem błąd tylko w tym programie odcina mi ostatnią cyfrę liczby

Dodane So, 10 lis 2012, 15:20

Teraz zauważyłem że tylko 1 jak jest na samym końcu to go odcina

Warunek pętli masz nie taki jakbyś chciał - np. dla 123 po drugim przebiegu pętli masz a = 2, i = 1, więc warunek nie jest spełniony. Musisz wykonywać pętle dopóki liczba ‘i’ jest różna/większa od zera.

@EDIT: Nie tylko jak pierwsza jest jedynka to odcina. Wystarczy, żeby druga cyfra liczby była większa od pierwszej(np. 23, 89111).

Dzięki za pomoc nie potrzebnie zachciało mi się jeszcze deklarować tą zmienną a.

Dodane So, 10 lis 2012, 15:32

Teraz już rozumiem dzięki Fiołek za pomoc.