Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

"No match for operator"

Ostatnio zmodyfikowano 2016-11-24 11:56
Autor Wiadomość
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:
C/C++
#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;
}
P-154057
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.
P-154059
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 ??
C/C++
#include <iostream>

using namespace std;


int main()
{
    string dzialanie;
    int mnozna, mnoznik, dzielna, dzielnik, skladnik1, skladnik2, odjemna, odjemnik, x, y, z, a;

np:
C/C++
#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;
}
P-154074
« 1 »
  Strona 1 z 1