Program sprawdza ilość powtórzeń - niepoprawne działanie
Ostatnio zmodyfikowano 2013-11-29 14:14
marek252 Temat założony przez niniejszego użytkownika |
Program sprawdza ilość powtórzeń - niepoprawne działanie » 2013-11-27 15:19:12 Witam. Mam problem. Program za każdym razem pokazuje, że "są 4 takie same liczby", niezależnie od tego jakie liczby mu podamy. Gdzie jest błąd?
#include <iostream> #include <stdlib.h> using namespace std;
int main() { int a, b, c, d; cout << "Podaj 4 liczby calkowite" << endl; cout << "a = "; cin >> a; cout << "b = "; cin >> b; cout << "c = "; cin >> c; cout << "d = "; cin >> d; if(( a = b ) &&( a = c ) &&( a = d ) ) cout << "Sa 4 takie same liczby"; else if(( a = b = c ) ||( a = b = d ) ||( a = c = d ) ||( b = c = d ) ) cout << "Sa 3 takie same liczby"; else if(( a = b ) ||( a = c ) ||( a = d ) ||( b = c ) ||( b = d ) ||( c = d ) ) cout << "Sa 2 takie same liczby"; else if( a != b && a != c && a != d && b != c && b != d && c != d ) cout << "Brak takich samych liczb"; return 0; }
Pozdrawiam |
|
pekfos |
» 2013-11-27 15:49:08 |
|
marek252 Temat założony przez niniejszego użytkownika |
» 2013-11-27 16:26:05 No tak, miało być == zamiast =. To jeszcze pytanie odnośnie warunku, czy muszę tam dawać nawiasy czy nie? Czy to są równoważne zapisy? if(( a == b ) &&( a == c ) &&( a == d ) ) i if( a == b && a == c && a == d ) |
|
pekfos |
» 2013-11-27 16:33:07 Są równoważne. |
|
marek252 Temat założony przez niniejszego użytkownika |
» 2013-11-27 22:27:55 Zastanawiam się jak napisać warunek, który sprawdzi czy są dwie pary takich samych liczb np. 4,4,5,5, bo takiej możliwości nie uwzględniłem w tym kodzie. Jak taki warunek powinien wyglądać?
|
|
pekfos |
» 2013-11-28 11:59:33 Chyba najłatwiej będzie posortować liczby i sprawdzać czy dwie pierwsze są sobie równe i różne od trzeciej, która jest równa czwartej. |
|
Wiesiek |
» 2013-11-29 14:14:50 int i = (a==b)+(a==c)+(a==d)+(b==c)+(b==d)+(c==d); i teraz w zależności od osiągniętej wartości i mamy 0,1,2,3 lub 4 liczby równe. Przepraszam - 0 i 1 to ten sam przypadek = nie ma żadnych dwóch liczb równych. |
|
« 1 » |