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

C++ Pytanie odnośnie zapisywania zmiennych?

Ostatnio zmodyfikowano 2016-05-30 15:03
Autor Wiadomość
KingFromAfrica
Temat założony przez niniejszego użytkownika
C++ Pytanie odnośnie zapisywania zmiennych?
» 2016-05-30 14:57:22
Witam, brnę coraz dalej w kursie C++ i wczoraj natknąłem się na dziwny błąd/właściwość. Mianowicie miałem napisać program do losowania liczb bez powtórzeń, a że jestem dosyć ambitny to siedziałem i siedziałem i siedziałem,ale napisałem. Mniejsza o to najwięcej problemu sprawiła mi ta linijka:

liczbDoLosowania[ wylosowania ] = liczba;

Od początku programu miałem ustawione, że
liczba = liczbDoLosowania[ wylosowania ];
 i wtedy program nie działał tylko losował liczby typu -8612367 i tu moje pytanie do was, czy jest jakiś schemat odnośnie tego, że nwm to czemu chcemy przypisać wartość stawiamy po lewej czy coś?
Poniżej cały kod


C/C++
// Program losujacy 5 liczb bez powtorzen z przedzialu 1-10
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <Windows.h>
using namespace std;

bool czyBylaWylosowana( int licz, int t[], int w ) // l = liczba , t[]= liczbDoLosowania,w= wylosowania = 0
{
    int h( 0 );
    if( w <= 0 )
         return false; //Dla pierwszej liczby ta liczba nigdy sie nie powtorzy bo jest pierwsza :D
   
    if( w > 0 )
    {
        for( int i = 0; i < w; i++ )
        {
           
            if( t[ h ] == licz ) //Sprawdza po kolei czy liczba nie jest rowna zadnej poprzedniej
                 return true; // np dla w=1 petla wykona sie raz i sprawdzi czy liczba nie jest rowna t[0] dla w=2 wykona sie 2 razy i sprawdzi czy liczba nie jest rowna t[1] i t[0]
            else h++; //Jezeli nie jest rowna to sie zwieksza az sprawdzi wszystkie przypadki
           
        }
    }
    return false; //Jezeli liczba bedzie rozna od wszystkich wczesniejszych przypadkow to funkcja zwroci false
   
}


int wylosuj() // To dziala
{
    return rand() % 5;
}


int main()
{
    srand( time( NULL ) );
    int liczbDoLosowania[ 5 ];
    int wylosowania = 0;
    int liczba, liczba1;
   
    do
    {
        liczba = wylosuj(); //Przypisujemy wartosc z wylosuj liczbie
        czyBylaWylosowana( liczba, liczbDoLosowania, wylosowania );
        if( czyBylaWylosowana( liczba, liczbDoLosowania, wylosowania ) == false ) //Jezeli liczba nie byla wylosowana czyli false
        {
            liczbDoLosowania[ wylosowania ] = liczba; //To przypisujemy wartosc liczby czyWylosowana wartosci liczbDoLosowania[0]
            wylosowania++; //I zwiekszamy wylosowania o 1
        }
        else
             Sleep( 100 );
       
    } while( wylosowania < 5 );
   
    liczba1 = wylosuj();
    for( int i = 0; i < 5; i++ )
    {
        cout << liczbDoLosowania[ i ] << endl;
       
    }
   
    system( "pause" );
    return 0;
}
P-148726
carlosmay
» 2016-05-30 15:01:43
czy jest jakiś schemat odnośnie tego,
Owszem. Przypisujemy prawą stronę do lewej, nie odwrotnie.
P-148727
KingFromAfrica
Temat założony przez niniejszego użytkownika
» 2016-05-30 15:03:48
Hahaha :D dzięki wielki temat raczej do zamknięcia ;)
P-148728
« 1 »
  Strona 1 z 1