Zadanie Domowe 10
Ostatnio zmodyfikowano 2014-06-03 23:51
tabinsert Temat założony przez niniejszego użytkownika |
Zadanie Domowe 10 » 2014-06-03 23:17:19 Mam pewien problem próbowałem robić zadanie domowe nr. 10 i napisałem nastepujący kod #include <iostream> using namespace std; int main() { int a, b; cout << " Podaj Liczbe 1 : "; cin >> a; cin.clear(); cin.sync(); cout << " Podaj Liczbe 2 : "; cin >> b; cin.clear(); cin.sync(); cout << " a+b= " << a += b << endl; return 0; } Lecz wyskakuje taki bład : kowite .cpp|17|error: invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<'| Poczytałem troche i dowiedziałem się że poniższy kod po małej zmianie działa tylko zastanawia mnie dlaczego ten do góry nie działa #include <iostream> using namespace std; int main() { int a, b; cout << " Podaj Liczbe 1 : "; cin >> a; cin.clear(); cin.sync(); cout << " Podaj Liczbe 2 : "; cin >> b; cin.clear(); cin.sync(); cout << " a+b= " << a + b << endl; return 0; } Tak i bedzie działać ale zastanawia mnie dlaczego tamten nie działa . |
|
czosnek17 |
» 2014-06-03 23:30:55 Chyba dlatego, że program nie bierze takiego dodawania jako całości i próbuje użyć złych operatorów, a wtedy kaszana. Wystarczy zrobić tak: cout << " a+b= " <<( a += b ) << endl; Wtedy a += b jest traktowane jako jedno wyrażenie i dopiero jego wynik tego działania jest przekazywany do operatorów << |
|
rdh |
» 2014-06-03 23:33:57 Popatrz na przedostatnią linijkę, w której wyświetlasz wynik. Niepotrzebnie przed znakiem dodawania jest "równa się". To chyba to ;) |
|
tabinsert Temat założony przez niniejszego użytkownika |
» 2014-06-03 23:36:07 A mam jeszcze jedno pytanie #include <iostream> using namespace std; int main() { float a, b; cout << " Podaj Liczbe 1 : "; cin >> a; cin.clear(); cin.sync(); cout << " Podaj Liczbe 2 : "; cin >> b; cin.clear(); cin.sync(); cout << " a+b= " << a + b << endl; cout << " a-b= " << a - b << endl; cout << " a*b= " << a * b << endl; cout << " a/b= " << a / b << endl; cout << " a/b= " << a % b << endl << endl << endl; return 0; } I wyskakuje bład : kowite .cpp|21|error: invalid operands of types 'float' and 'float' to binary 'operator%'| co tutaj jest źle że nie moge działań na rzeczywistych przeprowadzić ? |
|
czosnek17 |
» 2014-06-03 23:41:18 Tak, na modulo tylko całkowite. |
|
rdh |
» 2014-06-03 23:42:27 Znowu chodzi o przedostatnią linijkę. % o ile się nie mylę służy do wyliczania reszty, a ona występuje tylko przy liczbach całkowitych (int) a nie rzeczywistych (float). Swoją drogą dziwne, bo napis sugerowałby, że w tej linijce chciałbyś dzielić, po raz drugi, bo we wcześniejszej linijce też to robileś.. |
|
tabinsert Temat założony przez niniejszego użytkownika |
» 2014-06-03 23:51:09 Już doszedłem do tego , tak masz racje ostatnia linijka ma błedny tekst wyświetlany który nie wpływa raczej na przebieg procesu , ale dziękuje za cenne rady zgodnie z cytatem Einsteina popełniaj błedy i wyciągaj znich lekcje dziękuje że pomogliście wyciągnąć mi lekcje.
|
|
« 1 » |