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

problem ze wskaznikiem w do while

Ostatnio zmodyfikowano 2014-11-19 12:00
Autor Wiadomość
karlosiak
Temat założony przez niniejszego użytkownika
problem ze wskaznikiem w do while
» 2014-11-19 02:28:57
dla talia[56][2]= znajdują sie litery TPKkR po wykorzystaniu ktorejs ma ja podmieniac na " ". Problem polega na zastosowania do while i zmianie tablicy na wskaznik aby ominac mozliwosc wykorzystania 2x tego samego kawalka tablicy
C/C++
srand( time( NULL ) );

for( int gracz = 0; gracz < 6; gracz++ ) {
    int losowa;
   
   
    do {
        losowa =( rand() % 56 );
        cout << endl << losowa << endl;
        char * los =& talia[ losowa ][ 2 ];
        cout << los;
    } while(( * los == 'T' ) &&( * los == 'P' ) &&( * los == 'K' ) &&( * los == 'k' ) &&( * los == 'R' ) );
   
    karty_g[ gracz ][ 0 ] = talia[ losowa ][ 0 ];
    karty_g[ gracz ][ 1 ] = talia[ losowa ][ 1 ];
    karty_g[ gracz ][ 2 ] = talia[ losowa ][ 2 ];
    talia[ losowa ][ 0 ] = ' ';
    talia[ losowa ][ 1 ] = ' ';
    talia[ losowa ][ 2 ] = ' ';
}
P-120977
Chlorek
» 2014-11-19 11:25:06
Ten warunek ci się nie spełni nigdy:
C/C++
while(( * los == 'T' ) &&( * los == 'P' ) &&( * los == 'K' ) &&( * los == 'k' ) &&( * los == 'R' ) )
Jeśli los będzie 'T' to nie będzie mógł być jednocześnie i 'P' i 'K' etc.. Od tego warto zacząć ;)
P-120978
karlosiak
Temat założony przez niniejszego użytkownika
» 2014-11-19 11:49:22
no to zmieniłem na || ale mi nie chodziło mi do konca o tą odp. bardziej nie wiem jak zaincjalizowac wskaznik żeby wskazywał na tą talie[losowa][x] i żeby obowiązywało to w do {} while() bo jak inicjuje ją w do to kompilator jej nie rozpoznaje w while a jak wyprowadze przed do to kompilator robi cuda, bo w sumie losowa jeszcze nie jest znana?

C/C++
while( p < 5 )
{
    losowa =( rand() % 56 ); //
    //cout<< endl<<losowa<<endl;
    char * los =& talia[ losowa ][ 2 ];
    //cout<<los;
    if(( * los == 'T' ) ||( * los == 'P' ) ||( * los == 'K' ) ||( * los == 'k' ) ||( * los == 'R' ) )
         p = 6;
   
}

w ten sposob dalej wyswietla mi tą samą liczbę w sensie nie losuje dalej
P-120980
Chlorek
» 2014-11-19 12:00:08
Hmm nie do końca to zadziała, tak właśnie wczytuję się lepiej w kod i widzę takie oto rzeczy:
1. Pętla do-while nie zadziała, bo Tobie chodzi o losowanie tak długo aż trafisz na niepustą kartę.
C/C++
char * los = nullptr;
do {
    losowa =( rand() % 56 );
    cout << endl << losowa << endl;
    los = & talia[ losowa ][ 2 ];
    cout << los;
} while( * los == ' ' || los == nullptr );


2. Nie widzę powodu dla którego miałoby nie działać przed pętlą, co rozumiesz przez wariowanie kompilatora? Takie rzeczy warto napisać.
P-120981
« 1 »
  Strona 1 z 1