"No match for operator"
Ostatnio zmodyfikowano 2016-11-24 11:56
Krires Temat założony przez niniejszego użytkownika |
"No match for operator" » 2016-11-23 20:24:01 Cześć! Dopiero zaczynam swoją przygodę z programowaniem i postanowiłem, że napisze taki sobie kalkulator. I mam problem, ponieważ tak jak w tytule w logu kompilacji pisze "error: no match for: 'operator*'". I tak jest też z "/" oraz "-". Przy znaku "+" jest wszystko dobrze, może mi ktoś wytłumaczyć o co chodzi? Pls Oto kod: #include <iostream>
using namespace std;
string dzialanie, mnozna, mnoznik, dzielna, dzielnik, skladnik1, skladnik2, odjemna, odjemnik, x, y, z, a;
int main() { cout << "Dzialanie:"; cin >> dzialanie; if(( dzialanie == "mnozenie" ) ) { cout << "Mnozna:"; cin >> mnozna; cout << "Mnoznik:"; cin >> mnoznik; x = mnozna * mnoznik; cout << "Iloczyn:" << x; } else if(( dzialanie == "dzielenie" ) ) { cout << "Dzielna:"; cin >> dzielna; cout << "Dzielnik"; cin >> dzielnik; y = dzielna / dzielnik; cout << "Iloraz:" << y; } else if(( dzialanie == "dodawanie" ) ) { cout << "Skladnik1:"; cin >> skladnik1; cout << "Skladnik2:"; cin >> skladnik2; z = skladnik1 + skladnik2; cout << "Suma:" << z; } else if(( dzialnie == "odejmowanie" ) ) { cout << "Odjemna:"; cin >> odjemna; cout << "Odjemnik:"; cin >> odjemnik; a = odjemna - odjemnik; cout << "Roznica:" << a; else { cout << "Bledne dzialnie!" } } return 0; }
|
|
karambaHZP |
» 2016-11-23 20:41:59 Nie ma przeładowanych operatorów mnozenia i dzielenia dla std::string. Zmienne globalne nie są ci potrzebne.
|
|
mateczek |
» 2016-11-24 11:56:15 tam powinno być int nie string!!! I przecież działanie można zrobić na 2 składnikach na ki czort tyle zmiennych ?? #include <iostream>
using namespace std;
int main() { string dzialanie; int mnozna, mnoznik, dzielna, dzielnik, skladnik1, skladnik2, odjemna, odjemnik, x, y, z, a;
np: #include <iostream> using namespace std;
int main() { int a, b, wynik; char dzialanie; cin >> a >> dzialanie >> b; if( dzialanie == '+' ) { wynik = a + b; } else if( dzialanie == '+' ) { wynik = a + b; } else if( dzialanie == '*' ) { wynik = a * b; } else if( dzialanie == '/' ) { wynik = a / b; } cout << "wynik = " << wynik << endl; }
|
|
« 1 » |