Losowanie bez powtórzeń
Ostatnio zmodyfikowano 2022-05-12 18:46
Gravity Temat założony przez niniejszego użytkownika |
Losowanie bez powtórzeń » 2022-05-12 18:46:26 #include <iostream> #include <cstdlib> #include <time.h>
//1. Napisz program, który wczyta 3 liczby podane przez użytkownika do tablicy, //a następnie wylosuje 2 z nich bez powtórzeń. Wynik wypisz na ekran. //Postaraj się napisać ten program w oparciu o funkcje.
void wczytajLiczby(int liczby[]) { for (int i = 0; i < 3; i++) { std::cout << "Podaj liczbe [" << i + 1 << "] : "; std::cin >> liczby[i]; } }
void wylosujLiczby(int liczby[], int wylosowane_liczby[]) { for (int i = 0; i < 2;) { int wylos = std::rand() % 2; bool znaleziono = false; for (int j = 0; j < 2; j++) { if (wylosowane_liczby[j] == liczby[wylos]) znaleziono = true; }
if (!znaleziono) { wylosowane_liczby[i] = liczby[wylos]; i++; } } std::cout << std::endl;
}
void wypiszLiczby(int wylosowane_liczby[]) { for (int i = 0; i < 2; i++) { std::cout << "Wylosowan liczba bez powtorzen to : " << wylosowane_liczby[i] << std::endl; } } bool sprawdzLiczby(int liczby_test[]) { if ((liczby_test[0] == liczby_test[1] || liczby_test[0] == liczby_test[2]) || (liczby_test[1] == liczby_test[0] || liczby_test[1] == liczby_test[2]) || (liczby_test[2] == liczby_test[0] || liczby_test[2] == liczby_test[1])) { return true; } }
int main() { int liczby[3] = {}; int wylosowane_liczby[2] = {}; wczytajLiczby(liczby); bool podobne = sprawdzLiczby(liczby); if (!podobne) { wylosujLiczby(liczby, wylosowane_liczby); wypiszLiczby(wylosowane_liczby); } else std::cout << "Podales te same liczby!" << std::endl; return 0; }
Ustawiłem debugger na funkcje sprawdzLiczby i okazuje się że dostarczana do funkcji jest tablica tylko z jednym elementem.Czy w tym kodzie jest coś nie tak czy jest jednak ze mną, że nie potrafię tego odnaleźć ?? @EDIT Odnalazłem błąd po 5 min, nie dałem return false na końcu funkcji. Do zamknięcia. |
|
« 1 » |