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

Losowanie bez powtórzeń

Ostatnio zmodyfikowano 2022-05-12 18:53
Autor Wiadomość
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.
P-179450
« 1 »
  Strona 1 z 1