Mam taki kod(tak wiem że liczby mogą się powtórzyć, wiem jak to zrobić aby się nie powtrzały ale nie w tym problem):
Kod: Zaznacz cały
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void losowe_liczby (int *wskaz, int ile,int przedzial, int a)
{
srand(time(NULL));
for(int i =0; i<ile; i++)
{
*wskaz = rand() % przedzial + a;
wskaz ++;
}
for(int i = 0; i < ile; i++)
{
cout<< *wskaz <<" "<<endl;
wskaz++;
}
}
int main()
{
cout <<"Program wylosuje okreslona ilosc licz bez powtorzen"<<endl<<endl;
cout << "Podaj 'a' i 'b' aby okreslic przedzial [a...b]: " ;
int a,b;
cin >>a >> b;
cout<< endl << "Liczby maja byc bez powtorzen a wiec nie moze ich byc wiecej niz: "<< b-a<<endl<<endl;
int przedzial= b-a;
cout <<"Podaj ile liczb z tego przedzialu chcesz wylosowac: " ;
int ile;
cin>>ile;
int *tablica;
tablica = new int [ile];
int *wskaznik = tablica;
losowe_liczby (wskaznik, ile, przedzial, a);
delete [] tablica;
return 0;
}
Jednak program nie działa, w tablicach są jakieś liczby ale nie są one modulo a dla większych indeksów są tam zera, może mi ktoś powiedzieć w czym tkwi problem?