C++ - problem z losowaniem


(Bellow86) #1

Cześć, postanowiłem zapoznać się z językiem c++, a nie ma lepszej nauki niż próby samodzielnego programowania. Chcę napisać program, który będzie losował mi miejsce, do którego mam się udać na wakacje i miesiąc, w którym się udam. Niestety przy każdej próbie losowania wyświetla się to samo miejsce i miesiąc (pierwszy z listy). Szukając podobnych problemów natknąłem się na częściowe rozwiązanie - otóż zapewne gdzieś popełniłem błąd w kodzie. Zdaję sobie sprawę, że program jest błahy, ale niestety nie widzę miejsca gdzie mogłem zrobić błąd. Byłbym wdzięczny za pomoc. Piszę w Dev c++. Kod programu:

#include

#include

#include

#include


using namespace std;

int main()

        {

		srand (static_cast(time(NULL)));

        int a,b,c,d,e;

        cout<<"Cel";

        a=rand() % 5 + 1;

        {

			if(a=1)

			{

        		cout<<"Cypr";

			}	

        	else 

			{

				if (a=2)

				{

					cout<<"Majorka";

				}

        		else 

				{

					if (a=3)

					{

						cout<<"Wyspy kanaryjskie";

					}	

        			else 

					{	

						if (a=4)

						{	

							cout<<"Paryz";

						}

						else

						cout<<"Morze Baltyckie";

					}

				}

			}			

		}

        cout<<"\nTermin: ";

        b=rand() % 2 + 1;

        {

			if (b=1)

			{

				cout<<"Lipiec";

			}

			else 

			{

				if (b=2)

				{

					cout<<"Sierpien";

				}	

				else

				cout<<"Wrzesien";

			}	

		}

        cout<<"\nKoniec ";

        cin.ignore();

        getchar();

        }

([alex]) #2
//srand (static_cast(time(NULL))); // można też po drodze skonwertować na double

//srand (time(0)); // na to samo wyjdzie

//if(a=1) // wpisz w zmienną "a" wartość 1 po czym sprawdź czy zmienna "a" nie jest zerem.


// wybierz jedno z trzech rozwiązań, drugie generalnie odradzam, ostatnie polecam.


int main()

  {

   srand(time(0));

   cout<<"Cel ";

   int a=rand()%5;

   if(a==0) cout<<"Cypr";

   else if(a==1) cout<<"Majorka";

   else if(a==2) cout<<"Wyspy kanaryjskie";

   else if(a==3) cout<<"Paryz";

   else if(a==4) cout<<"Morze Baltyckie";

   cout<
   ...

   cout<
   cin.sync();

   cin.get();

   return 0;

  }


int main()

  {

   srand(time(0));

   cout<<"Cel ";

   switch(rand()%5)

     {

      case 0: cout<<"Cypr"; break;

      case 1: cout<<"Majorka"; break;

      case 2: cout<<"Wyspy kanaryjskie"; break;

      case 3: cout<<"Paryz"; break;

      case 4: cout<<"Morze Baltyckie"; break;

     }

   cout<
   ...


   cout<
   cin.sync();

   cin.get();

   return 0;

  }


int main()

  {

   srand(time(0));

   char *cele[]={"Cypr","Majorka","Wyspy kanaryjskie","Paryz","Morze Baltyckie", /*wystarczy coś dopisać*/ };

   char *terminy[]={"Lipiec","Sierpien","Wrzesien", /* i więcej żadnych zmian nie trzeba */ };

   cout<<"Cel: "<
   cout<<"Termin: "<
   cout<<"Koniec"<
   cin.sync();

   cin.get();

   return 0;

  }

(Bellow86) #3

Dzięki za pomoc! Temat do zamknięcia