problem ze wskaznikiem w do while
Ostatnio zmodyfikowano 2014-11-19 12:00
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 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 ] = ' '; } |
|
Chlorek |
» 2014-11-19 11:25:06 Ten warunek ci się nie spełni nigdy: 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ąć ;) |
|
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? while( p < 5 ) { losowa =( rand() % 56 ); char * los =& talia[ losowa ][ 2 ]; 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 |
|
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ę. 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ć. |
|
« 1 » |