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

Program sprawdza ilość powtórzeń - niepoprawne działanie

Ostatnio zmodyfikowano 2013-11-29 14:14
Autor Wiadomość
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?
C/C++
//Napisz program wczytujący 4 liczby całkowite i sprawdzający
//ile jest wśród nich powtórzeń (dwójek, trójek lub czwórek).

#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
P-97657
pekfos
» 2013-11-27 15:49:08
P-97661
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 )
P-97669
pekfos
» 2013-11-27 16:33:07
Są równoważne.
P-97673
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ć?
P-97704
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.
P-97738
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.
P-97837
« 1 »
  Strona 1 z 1