[C++] Problem z dzieleniem modulo


(adriano765) #1

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<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'


(Fiołek) #2

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 ‘=’.


(adriano765) #3

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


(Fiołek) #4

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).


(adriano765) #5

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.