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

wypełnianie tablicy wielowymiarowej ciągami znaków

Ostatnio zmodyfikowano 2017-11-22 11:35
Autor Wiadomość
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.
P-167050
nanoant20
» 2017-11-21 12:54:36
poprawka
C/C++
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++" ]
//wczytujemy studentow
for( int i = 0; i < liczbastudentow; i++ )
{
    cout << "Imie: "; cin >> Student[ i ].imie;
    itd...itp...
}
P-167051
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[] [].
P-167054
mateczek
» 2017-11-21 16:44:27
musisz użyć tablicy 2D?? jeśli nie to możesz skorzystać ze struktury
C/C++
#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;
    }
   
}
P-167055
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
P-167057
mateczek
» 2017-11-21 18:35:21
C/C++
#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;
    }
   
}
P-167058
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ę.
P-167065
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?
P-167066
« 1 » 2
  Strona 1 z 2 Następna strona