Dlaczego else nie działa?

Dlaczego else nie działa?
Dewolf
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:17
0

Tak jak w temacie, else nie działa. Wpisuje 2 takie same cyfry, ale wyjście mówi że jedna jest mniejsza od drugiej.

Wyjście
Wyjście

Kod

Kopiuj
// Program porównujący liczby 
#include "std_lib_facilities.h"
int main()
{
	cout << "Podaj 2 liczby calkowite\n";
	int val1 = 0;
	int val2 = 0;
	while (cin >> val1 && cin >> val2) {

		{
			if (val1 > val2)
				cout << "Liczba " << val1 << " jest wieksza od " << val2 << '\n';
			else
				cout << "Liczba " << val1 << " jest mniejsza od " << val2 << '\n';
		}

		cout << "Suma tych liczb to " << val1 + val2 << '\n';
		
		{
			if (val1 != val2)
				cout << "Te liczby roznia sie od siebie!\n";
			else
				cout << "Te liczby sa takie same!\n";
		}

		cout << "Iloczyn tych 2 liczb to " << val1 * val2 << '\n';

		{
			if (val1 == val2)
				cout << "Proporcje tych liczb to " << val1 << " == " << val2 << '\n';
		}

		{
			if (val1 > val2)
				cout << "Proporcja tych dwoch liczb to: " << val1 << " > " << val2 << '\n';
			else
				cout << "Proporcja tych dwoch liczb to: " << val1 << " > " << val2 << '\n';
		}
	}
}
edytowany 7x, ostatnio: Dewolf
mpaw
  • Rejestracja:około 9 lat
  • Ostatnio:25 dni
  • Postów:530
7

No bo nie sprawdzasz czy są równe. Jak liczba nie jest większa od drugiej, to nie oznacza, że jest mniejsza ;)


That's all folks ;)
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:3 minuty
  • Lokalizacja:Szczecin
2
Kopiuj
            if (val1 > val2)
                cout << "Liczba " << val1 << " jest wieksza od " << val2 << '\n';
            else
                cout << "Liczba " << val1 << " jest mniejsza od " << val2 << '\n';

Po polsku:
jeśli a jest większe od b to napisz "a jest większe od b"
we wszystkich pozostałych przypadkach napisz "a jest mniejsze od b"

Program robi to co mu każesz. Masz trzy przypadki, a obsługujesz dwa


edytowany 1x, ostatnio: kq
KHX
A co jak som ruwne?
kq
No właśnie, co wtedy?
KHX
Nie, no pomysł na komentarz niczym Einstein, w ogóle nie opiera się to na identycznej zasadzie.
KHX
if(Val 1 == Val 2) { cout <<("som ruwne") ; }
AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
2
Dewolf napisał(a):

Tak jak w temacie, else nie działa. Wpisuje 2 takie same cyfry, ale wyjście mówi że jedna jest mniejsza od drugiej.

Po pierwsze, to liczby a nie cyfry.

Kod

Kopiuj
			if (val1 > val2)
				cout << "Liczba " << val1 << " jest wieksza od " << val2 << '\n';
			else
				cout << "Liczba " << val1 << " jest mniejsza od " << val2 << '\n';
Kopiuj

Po drugie działa tak, jak napisałeś. Czy jest WIĘKSZA? nie jest -> else przeciwny komunikat.

Nigdzie w warunku nie uwzględniłeś równości. Albo trzeci if, albo zmienić tekst na "mniejsza lub równa"

Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
Dewolf
Od kiedy 9 to nie cyfra?
AK
Widzę że nie odrózniasz tych bytów
CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:2 dni
  • Postów:2311
0

Tak btw:

Kopiuj
        {
            if (val1 == val2)
                cout << "Proporcje tych liczb to " << val1 << " == " << val2 << '\n';
        }

        {
            if (val1 > val2)
                cout << "Proporcja tych dwoch liczb to: " << val1 << " > " << val2 << '\n';
            else
                cout << "Proporcja tych dwoch liczb to: " << val1 << " > " << val2 << '\n';
        }

nie lepiej zrobić "if( val1 == val2)" i zamiast kolejnego ifa to iść dalej i dodać "else if(val1 > val2)"

No i ten drugi if wykonuje to samo co jego else. Chyba chodziło Ci o coś takiego:

Kopiuj
            if (val1 > val2)
                cout << "Proporcja tych dwoch liczb to: " << val1 << " > " << val2 << '\n';
            else
                cout << "Proporcja tych dwoch liczb to: " << val1 << " < " << val2 << '\n';
edytowany 1x, ostatnio: Czitels
kq
To cały czas wypisze, że 9 < 9
Dewolf
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:17
1

Dziękuje wszystkim za pomoc, dopiero po większym przeanalizowaniu kodu zrozumiałem swój logiczny błąd, to chyba efekt mało efektywnego snu 😂

edytowany 1x, ostatnio: Dewolf

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.