Wątek przeniesiony 2017-05-01 14:59 z C/C++ przez Patryk27.

Niedziałające prawidłowo porównywanie

0

Witam wszystkich , przejde Od razu do rzeczy.

Kawałek kodu :

cout << "Co chcesz zrobic? Operacje dodaj, odejmij, pomnoz" << endl;
	cin >> o;
	
	if (o = odejmij) {
		cout << "wynik odejmowania = " << (a - b - c) << endl;
	}
	else if (o = dodaj) {
		cout << "wynik dodawania = " << (a + b + c) << endl;
	}
	if (o = pomnoz) {
		cout << "wynik mnozenia = " << (a * b * c) << endl;
	}

Po uruchomieniu wyswietlają mi się trzy wyniki zamiast jednego wybranego.
Moze ktos podpowiedziec ?
Pozdrawiam

5

zmień "=" na ==
title

0

niestety dalej nic , po zamianie = na == , nie wyświetlaja się wyniki

0

Wydaje mi się ze do else musisz dać jeszcze "{}"


cout << "Co chcesz zrobic? Operacje dodaj, odejmij, pomnoz" << endl;
    cin >> o;
 
    if (o == odejmij) {
        cout << "wynik odejmowania = " << (a - b - c) << endl;
    }
    else
	{
		if (o == dodaj) {
			cout << "wynik dodawania = " << (a + b + c) << endl;
		}
		else
		{
			if (o == pomnoz) {
				cout << "wynik mnozenia = " << (a * b * c) << endl;
			}
		}
	}
 
0

Może pokaż resztę kodu?

0
#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
	int a, b, c, o; // Dodawanie z klawiatury
	
	cout << "MINI KALKULATOR LICZB" << endl;
	cout << "MOZESZ PODAWAC LICZBY NIE WIEKSZE NIZ 10" << endl;
	cout << "Podaj pierwsza liczbe" << endl;
	cin >> a;
	while (a > 10) cout << "Podaj liczbe mniejsza od 10 " << endl &&cin >> a;

	cout << " Podaj druga liczbe" << endl;
	cin >> b;
	while (b > 10) cout << "Podaj liczbe mniejsza od 10 " << endl &&cin >> b;

	cout << "Podaj trzecia liczbe" << endl;
	cin >> c;
	while (c > 10) cout << "Podaj liczbe mniejsza od 10 " << endl &&cin >> c;

	int odejmij = a - b - c;
	int dodaj = a + b + c;
	int pomnoz = a * b * c;
	
	cout << "Co chcesz zrobic? Operacje dodaj, odejmij, pomnoz" << endl;
	cin >> o;
	
	if (o == odejmij) {
		cout << "wynik odejmowania = " << (a - b - c) << endl;
	}
	else if (o == dodaj) {
		cout << "dodawanie  " << a + b + c << endl;
	}

	else if (o == pomnoz) {
		cout << "mnozenie" << a*b*c << endl; }


    return 0;
}
```cpp
Teraz z kolei jezeli wpiszę dodaj , daje wynik z "odejmij"
0

Nadal w if zamiast porównania == piszesz przypisanie wartości =.
Poza tym o jest typu int, a nie string lub char[].
I dalej poza tym robisz błędne przyrównania. Porównujesz np to co wprowadzi użytkownik do wyniku odejmowania ???

2

Tu masz poprawiony kod, przeanalizuj go sobie i porównaj z twoim:

//#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

int main()
{
    int a=0, b=0, c=0;
    string o;

    cout << "MINI KALKULATOR LICZB" << endl;
    cout << "MOZESZ PODAWAC LICZBY NIE WIEKSZE NIZ 10" << endl;
    cout << "Podaj pierwsza liczbe" << endl;
    cin >> a;
    while (a > 10) cout << "Podaj liczbe mniejsza od 10 " << endl &&cin >> a;

    cout << " Podaj druga liczbe" << endl;
    cin >> b;
    while (b > 10) cout << "Podaj liczbe mniejsza od 10 " << endl &&cin >> b;

    cout << "Podaj trzecia liczbe" << endl;
    cin >> c;
    while (c > 10) cout << "Podaj liczbe mniejsza od 10 " << endl &&cin >> c;

    cout << "Co chcesz zrobic? Operacje dodaj, odejmij, pomnoz" << endl;
    cin >> o;

    if (o == "odejmij") {
        cout << "wynik odejmowania = " << (a - b - c) << endl;
    }
    else if (o == "dodaj") {
        cout << "dodawanie  " << a + b + c << endl;
    }

    else if (o == "pomnoz") {
        cout << "mnozenie" << a*b*c << endl; }

    return 0;
}

0 użytkowników online, w tym zalogowanych: 0, gości: 0