Tablica przechowująca dwa typy danych
Ostatnio zmodyfikowano 2017-06-16 22:31
1551 Temat założony przez niniejszego użytkownika |
Tablica przechowująca dwa typy danych » 2017-06-14 15:11:24 Witam. Czy jest możliwość deklaracji tablicy przechowującej dwa typy danych ? Chciałbym zrobić macierz która zawiera elementy int(wszelkie wprowadzane liczby) oraz znaki typu 'A', 'B', 'C'. Z samymi intami nie było by problemu int macierz[ a ][ b ]; , ale co zrobić z faktem znaków ? Czy da się w jakiś sposób zapisać te znaki w kodach ascii, aby przy wyświetlaniu tablicy te wartości na ekranie były przeradzane w 'A', 'B','C' ...? |
|
Kinexity |
» 2017-06-14 15:14:24 Jak się nie mylę to da się rzutować int na char - static_cast < char >( nazwa_zmiennej ) |
|
hit |
» 2017-06-14 15:22:13 |
|
1551 Temat założony przez niniejszego użytkownika |
» 2017-06-14 15:36:18 Dziękuję bardzo, już sobie poradziłem. Nie wpadłem na tak prostą rzecz jak rzutowanie. Z ASCII też prosta sprawa, a jakoś mi umknęła. |
|
1551 Temat założony przez niniejszego użytkownika |
» 2017-06-14 16:49:14 Mógłby ktoś jeszcze przejrzeć kod i powiedzieć dlaczego nie wczytuje poprawnie danych ? #include<iostream> #define max 10000
using namespace std;
int main() { int size; int c; int M[ size ][ size ]; char ch; cout << " Prosze wprowadzic rozmiar tablicy z przedzialu [0;10^4] : "; cin >> size; if( size < 0 || size > max ) cout << "\n Wprowadzony rozmiar nie spelnia warunkow !\n"; else { cout << endl << endl; for( int i = 0; i < size; i++ ) { cout << " Wprowadz elementy " << i << " wiersza : \n"; for( int j = 0; j < size; j++ ) { if(( j % 2 == 0 && i % 2 != 0 ) ||( j % 2 != 0 && i % 2 == 0 ) ) { cin >> c; M[ i ][ j ] = c; } if( j % 2 == 0 && i % 2 == 0 ) { cin >> ch; if( ch != 'X' ) { cout << " \n Zle wprowadzono dane - miejsce na X"; system( "Pause" ); return 0; } else M[ i ][ j ] = int( ch ); } if( j % 2 != 0 && i % 2 != 0 ) { cin >> ch; if( ch != 'Y' ) { cout << " \n Zle wprowadzono dane - miejsce na Y"; system( "Pause" ); return 0; } else M[ i ][ j ] = int( ch ); } } } } cout << endl << endl << endl << " Aktualnie wygenerowana macierz ma postac : \n\n "; cout << "\n\n\n\n "; system( "Pause" ); return 0; }
Dlaczego program się wysypuje i dlaczego nie wczytuje poprawnie danych ? Na miejscach i oraz j parzyste ma byc mozliwy jedynie X do wprowadzenia a odwrotnie tylko Y. Kiedy jedynie i albo j jest parzyste a drugie nie to wprowadzamy liczbe. |
|
1aam2am1 |
» 2017-06-14 17:43:45 int M[ size ][ size ]; jaką to ma wielkość? |
|
1551 Temat założony przez niniejszego użytkownika |
» 2017-06-14 17:47:21 Miało być [max][max], ale w tym przypadku też wysypuje program. Ewentualnie mogę chyba dać delkarację tablicy M[size][size] po pobraniu cin>>size, prawda? |
|
1aam2am1 |
» 2017-06-14 17:52:05 Nie tego nie można zrobić w c++ |
|
« 1 » 2 |