1mSnajper Temat założony przez niniejszego użytkownika |
wypełnianie tablicy wielowymiarowej ciągami znaków » 2017-11-21 11:21:11 Cześć, Mam do wykonania takie zadanie: Napisz program, który wczytuje do tablicy imiona i nazwiska n studentów oraz ich miejsce zamieszkania, a następnie drukuje zawartość tablicy na ekranie w trzech kolumnach. (n<10). Problem polega na tym, że niestety nie mam pojęcia jak wpisywać te wartości do tablicy tak, żeby przy wyświetlaniu tekstu na ekranie pojawiły się 3 kolumny i n wierszy. Wiem, że tablice taką sie robi przez stworzenie tablicy ,np. char tab[2][n-1]. Jedną wartość potrafię wczytać, ale kiedy probuje wpisać z klawiatury już 3 pod rząd to pętla przeskakuje o 3 miejsca. Nie proszę o rozwiązanie tego zadania i wręcz tego nie chcę, bo to nie na tym ma polegać, ale o wyjaśnienie jak przykładowo mam się zabrać za wypełnianie takiej tablicy, próbowałem przy użyciu dwóch pętli, jednej dla wierszy, drugiej dla kolumn, ale też nic nie wyszło. |
|
nanoant20 |
» 2017-11-21 12:54:36 poprawka for( int i = 0; i < 3; i++ ) { for( int j = 0; j < 10; j++ ) { cin >> tab[ i ][ j ]; } }
P.S. Taki programik napisalbym w oparciu o strukture i w niej trzymal tablice char [ code src = "C++" ]
for( int i = 0; i < liczbastudentow; i++ ) { cout << "Imie: "; cin >> Student[ i ].imie; itd...itp... }
|
|
1mSnajper Temat założony przez niniejszego użytkownika |
» 2017-11-21 16:27:54 Ok, dzięki tylko kwestia taka, że to ma być zrobione w jednej tablicy, a nie w trzech. Tak jak pisałem tablica ma wyglądać przykładowo tak tab[] []. |
|
mateczek |
» 2017-11-21 16:44:27 musisz użyć tablicy 2D?? jeśli nie to możesz skorzystać ze struktury #include <iostream> #include<cmath> using namespace std; struct osoba { string imie; string nazwisko; string adress; }; int main() { osoba tab[ 3 ]; tab[ 0 ].imie = "piotrek"; tab[ 0 ].nazwisko = "piotrowski"; tab[ 0 ].adress = "wachock 56"; tab[ 1 ].imie = "marek"; tab[ 1 ].nazwisko = "marecki"; tab[ 1 ].adress = "wachock 55"; tab[ 2 ].imie = "adam"; tab[ 2 ].nazwisko = "adamski"; tab[ 2 ].adress = "wachock 54"; for( int i = 0; i < 3; i++ ) { cout << tab[ i ].imie << " " << tab[ i ].nazwisko << " " << tab[ i ].adress << endl; } }
|
|
1mSnajper Temat założony przez niniejszego użytkownika |
» 2017-11-21 18:08:23 No właśnie to musi być tablica dwuwymiarowa. Jak jeden wymiar ogarniam tak juz dwóch nie |
|
mateczek |
» 2017-11-21 18:35:21 #include <iostream> #include<cmath> using namespace std; int main() { string tab[ 3 ][ 3 ]; tab[ 0 ][ 0 ] = "piotrek"; tab[ 0 ][ 1 ] = "piotrowski"; tab[ 0 ][ 2 ] = "wachock 56"; tab[ 1 ][ 0 ] = "marek"; tab[ 1 ][ 1 ] = "marecki"; tab[ 1 ][ 2 ] = "wachock 55"; tab[ 2 ][ 0 ] = "adam"; tab[ 2 ][ 1 ] = "adamski"; tab[ 2 ][ 2 ] = "wachock 54"; for( int i = 0; i < 3; i++ ) { cout << tab[ i ][ 0 ] << " " << tab[ i ][ 1 ] << " " << tab[ i ][ 2 ] << endl; } }
|
|
1mSnajper Temat założony przez niniejszego użytkownika |
» 2017-11-21 19:58:02 Dziękuję :) Wreszcie ktoś naswietlil mi ten problem z innej strony i rozumiem rozwiązanie. Teraz tylko pozostaje mi przysiąść do kompa i zacząć poprawiać swój kod. Jeszcze raz dziękuję. |
|
1mSnajper Temat założony przez niniejszego użytkownika |
» 2017-11-21 20:45:33 Chociaz właściwie to jeszcze mi sie jedna mysl nasunela. A co jezeli dane maja byc wprowadzone przez uzytkownika programu? Zwykla funkcja scanf("%s", tab[] []) zadziala? |
|
« 1 » 2 |