Witam, jak to zwykle bywa chciałbym się poradzić bardziej doświadczonych użytkowników forum na temat mojego programu który wygląda następująco:
#include <cstdlib>
#include <iostream>
#include <ctime>
#include <conio.h>
using namespace std;
int Losowanie(int *wsk, int max, int rozmiar);
int Wpis_do_tab(int *wks, int rozmiar);
int main()
{
int tablica_los[10], tablica_uzy[10];
int max = 10, rozmiar = 10;
char licznik;
do
{
for(int i = 0; i < rozmiar; i++)
{
tablica_los[i] = Losowanie(tablica_los, max, rozmiar);
}
cout << "Tablica wylosowana to: \n" << endl;
for(int i = 0; i < rozmiar; i++)
{
cout << "\tTablica_los[" << i <<"] = " << tablica_los[i] << endl;
}
cout << "\nProsze o podanie 10 elementow tablicy\n" << endl;
Wpis_do_tab(tablica_uzy, rozmiar);
cout << "\n\nPowtorzyc operacje? t/n";
cin >> licznik;
}
while(licznik != 'n');
}
int Losowanie(int *wsk, int max, int rozmiar)
{
srand(time(NULL));
*wsk = rand()%max;
return *wsk;
}
int Wpis_do_tab(int *wsk, int rozmiar)
{
for(int i = 0; i < rozmiar; i++, *(wsk++))
{
cout << "\tTablica[" << i <<"] = ";
while(!(cin >> *wsk))
{
cin.clear(); //kasowanie flagi błędu strumienia
cin.sync(); //kasowanie zbędnych znaków z bufora
}
}
}
Program jaki jest każdy widzi, ale moje pytanie brzmi, czy losowanie liczb może odbywać się w sposób "losowy"? To co mam teraz to powtarzanie kolejnego wyniku, nie rozumiem dlaczego funkcja chodź jest wywoływana w pętli, czyli powinna podawać nowe liczby, bo funkcja jest uruchamiana kilka razy od nowa prawda? Natomiast efektem jest podawanie ciągle tej samej cyfry, próbowałem też zrobić pętle for w funkcji "Losowanie" ale to także dało wymierne efekty, może ktoś mógłby podpowiedzieć jak się z tym uporać?
Losowanie nie musi być doskonałe, przeważnie będzie odbywać się w zbiorze 10-cio elementowym, chodź chciałbym dać możliwość podawania zakresu przez użytkownika, zostawiłem sobie taką furteczkę :P
Wpadłem też na pomysł żeby losować odpowiednie komórki pamięci, odczytywać je i zaokrąglać do jedności, po czym zapisywać do tablicy, co o tym sądzicie?