[C++] Błędne wypisywanie elementów tablicy
Ostatnio zmodyfikowano 2012-11-03 18:32
Rosumad Temat założony przez niniejszego użytkownika |
[C++] Błędne wypisywanie elementów tablicy » 2012-11-03 15:16:15 Witam, mam problem w takim programie: #include <iostream> #include <stdio.h> #include <conio.h> #include <string.h> #include <iomanip> #include <ctime> #include <fstream> #include <cstdlib> using namespace std;
void WysPlansze( char tz[] ) { cout << "1 *2 *3 " << endl; cout << " " << tz[ 1 ] << " * " << tz[ 2 ] << " * " << tz[ 3 ] << " " << endl; cout << " * * " << endl; cout << "*****************" << endl; cout << "4 *5 *6 " << endl; cout << " " << tz[ 4 ] << " * " << tz[ 5 ] << " * " << tz[ 6 ] << " " << endl; cout << " * * " << endl; cout << "*****************" << endl; cout << "7 *8 *9 " << endl; cout << " " << tz[ 8 ] << " * " << tz[ 8 ] << " * " << tz[ 9 ] << " " << endl; cout << " * * " << endl; }
void WartPocz( int tab[] ) { int la = 9; for( int i = 0; i <= la; i++ ) { tab[ i ] = 0; } }
void Przypisywanie( int tabl[], char tabz[] ) { int l = 0; do { if( tabl[ l ] == 0 ) { tabz[ l ] = ' '; l++; } else if( tabl[ l ] == 1 ) { tabz[ l ] = 'O'; l++; } else if( tabl[ l ] == 2 ) { tabz[ l ] = 'X'; l++; } } while( l <= 9 ); }
int KtorePole() { int wybor; cout << " Do ktorego pola wpisac? " << endl << endl; cin >> wybor; return wybor; }
void Wpisuje( int tl[], int wpola, char cruch ) { if( cruch == 'O' ) { tl[ wpola ] = 1; } else if( cruch == 'X' ) { tl[ wpola ] = 2; } }
main() { int tl[ 10 ], wpola; char tz[ 10 ], cruch = 'O'; WartPocz( tl ); Przypisywanie( tl, tz ); WysPlansze( tz ); wpola = KtorePole(); if( cruch == 'O' ) { Wpisuje( tl, wpola, cruch ); cruch = 'X'; } else if( cruch == 'X' ) { Wpisuje( tl, wpola, cruch ); cruch = 'O'; } Przypisywanie( tl, tz ); WysPlansze( tz ); getch(); }
Problem pojawia sie gdy do zmiennej 'wpola' wpiszemy wartosc 7 lub 8: - dla liczby 7 - program do pola nr. 7 nie wpisuje zadnej wartosci - dla liczby 8 - program wpisuje do pola nr. 7 i nr. 8 takie same wartosci (np. 2x X czy 2x O) Probowalem rozwiazac to na wszystkie znane mi sposoby, nie udalo sie. Kombinuje od 3h... Mam nadzieje, ze mi pomozecie. Po 2,5h czekania stwierdzam, ze chyba nikt nie zna rozwiazania na ten problem... No, nie wazne, sproboje jeszcze... |
|
OSA_PL |
» 2012-11-03 18:08:52 Popatrz jeszcze raz na funkcję WysPlansze. |
|
Rosumad Temat założony przez niniejszego użytkownika |
» 2012-11-03 18:16:01 OSA_PL JESTES MOIM MISTRZEM! Dzieki bardzo, nie zauwazylem tak prostego, a tak znaczacego bledu... Dlugo to studiowales? Ja od 6h probowalem dojsc dlaczego... |
|
OSA_PL |
» 2012-11-03 18:19:41 Chwilkę, ta funkcja jest na samym początku więc nie miałem zbyt wiele do studiowania. |
|
tirou |
» 2012-11-03 18:22:55 Może ktoś by wyjasnil gdzie jest blad w twoim kodzie? Tak dla jasności innych forumowiczow ;) |
|
OSA_PL |
» 2012-11-03 18:23:48 cout << " " << tz[ 8 ] << " * " << tz[ 8 ] << " * " << tz[ 9 ] << " " << endl; Teraz widzisz? |
|
Rosumad Temat założony przez niniejszego użytkownika |
» 2012-11-03 18:32:50 Chodzilo o to, ze w kodzie bylo cout << " " << tz[ 8 ] << " * " << tz[ 8 ] << " * " << tz[ 9 ] << " " << endl; zamiast tz[7] bylo tz[8]. Caly blad. |
|
« 1 » |