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

Pobieranie unikalnych liczb od użytkownika.

Ostatnio zmodyfikowano 2020-04-16 00:33
Autor Wiadomość
randrie
Temat założony przez niniejszego użytkownika
Pobieranie unikalnych liczb od użytkownika.
» 2020-04-15 01:27:02
Witam,
na wstępie chciałbym nie przywitać i oczywiście podkreślić ze jestem bardzo początkujący w programowaniu. Napisałem prosty program który pobiera unikalne liczby od użytkownika i zapisuje je do tablicy tj. jeżeli użytkownik chce podać kolejny raz taka sama liczba to program prosi o inna. Np. program pobiera 3 liczby od użytkownika i jeżeli w pobraniu liczba sie powtórzy użytkownik musi podać inna. Wszystko jest pięknie i ładnie jednak tablica domyślnie wypełniona jest zerami i w momencie jeżeli użytkownik poda jako pierwsza liczba 0 program wywala info ze taka liczba juz jest i trzeba podać inna. Skończyły mi nie pomysły jak to ominąć.

Kod:
C/C++
#include <iostream>

using namespace std;

int main()
{
    bool czyBlad;
    bool czyJest;
    int i = 0;
    int pobrane[ 3 ];
    int ilePob = 3;
    int pobieranaLiczba;
   
   
    do {
        cout << "Podaj " << i + 1 << " liczbe: ";
        cin >> pobieranaLiczba;
        czyBlad = cin.fail();
        czyJest = 1;
        cin.clear();
        cin.ignore( numeric_limits < streamsize >::max(), '\n' );
        if( czyBlad == 1 )
             cout << "Wpisana liczba jest nieprawidłowa! ";
       
        else {
            czyJest = 1;
            int licznik = 0;
            do {
                if( pobieranaLiczba == pobrane[ licznik ] )
                {
                    czyJest = 0;
                    cout << "Już podałeś taka liczbę! ";
                }
                licznik++;
            } while( licznik < i );
           
            if( czyJest == 1 )
            {
                pobrane[ i ] = pobieranaLiczba;
                i++;
            }
        }
    } while( i < ilePob );
   
    return 0;
}

Edit: Przepraszam, wyciąłem kawełek kodu z funkcji i nie sprawdziłem. Teraz już się kompiluje.
P-176662
pekfos
» 2020-04-15 16:09:47
tablica domyślnie wypełniona jest zerami
Nie ma domyślnej wartości. Niezainicjalizowana tablica zawiera przypadkowe dane. Użyj pętli while. do..while zawsze wykonuje co najmniej jeden przebieg, a tu powinno być zero razy przy sprawdzaniu pierwszej liczby, jeden raz dla drugiej, itd.
P-176665
randrie
Temat założony przez niniejszego użytkownika
» 2020-04-16 00:33:53
Działa 100-krotne dzięki. Wiedziałem, że przy pierwszej pętli tablica nie powinna być sprawdzana ale za bardzo kombinowałem.
P-176670
« 1 »
  Strona 1 z 1