Witam, otóż mam pewien problem. Muszę zrobić listę, do której będę wpisywał liczby. Nie mogą się one powtarzać. Oprócz tego muszę też zrobić możliwość wpisania X losowych liczb. Np. jako ilość losowych liczb podam 3, to pojawią się 3 losowe liczby (np. 32, 3243, 12). I niestety nie wiem jak to zrobić. Ogólnie też nie wiem czy kod jest w miarę dobry, gdyż dopiero zaczynam się uczyć C++ i robiłem to na podstawie poradników zamieszczonych w internecie.
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
struct Lista
{
int element;
Lista* Next;
void wypisz()
{
cout << "Element to: " << element << endl;
}
};
void dodaj_element(Lista **korzen)
{
Lista *nowa = new Lista;
Lista *pomoc = (*korzen), *pomoc1 = NULL;
while (pomoc !=NULL && (pomoc->element) < (nowa->element))
{
pomoc1 = pomoc;
pomoc = pomoc->Next;
}
if(pomoc != NULL && (pomoc->element)==(nowa->element))
{
cout << "Element " << nowa->element << " juz istnieje." << endl;
delete nowa;
}
else if ((*korzen) == NULL || (pomoc == (*korzen) && (pomoc->element) > (nowa->element)))
{
nowa->Next = (*korzen);
(*korzen) = nowa;
}
else
{
pomoc1->Next = nowa;
nowa->Next = pomoc;
}
}
void wypisz_liste(Lista *korzen)
{
cout << "Zawartosc listy: " << endl;
while(korzen != NULL)
{
korzen->wypisz(); // wypisanie listy
korzen = korzen->Next; // przejscie na kolejny element
}
}
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
Lista *korzen = NULL;
char instrukcja;
char pierwszy;
int koko;
cout << "Pro mega obsluga: d aby dodac, w aby wyswietlic, s aby koniec, l aby wiele losowych" << endl << endl;
while (cin >> instrukcja)
{
switch(instrukcja)
{
case 'd':
dodaj_element(&korzen);
break;
case 'w':
wypisz_liste(korzen);
break;
case 's':
system("PAUSE");
return 0;
return EXIT_SUCCESS;
break;
case 'l':
cout << "test" << endl;
break;
default:
cout << "Musisz cos wybrac!" << endl;
}
}
system("PAUSE");
return 0;
return EXIT_SUCCESS;
}