Problem z zadaniem z książki, wyświetlanie tablic struktur.
Ostatnio zmodyfikowano 2017-06-12 16:18
Bercik97 Temat założony przez niniejszego użytkownika |
Problem z zadaniem z książki, wyświetlanie tablic struktur. » 2017-06-10 19:55:26 Witam, oto zdj zadania http://imgur.com/a/7cTgh Mam problem z wyświetleniem tablicy struktury, gdy np nacisnę ' a ' to program wyświetla mi ostatnią literę struktury tablicy[0] czyli ' d '. W pozostałych opcjach też jest tak samo. Proszę o pomoc, oto kod : #include <iostream> #include <conio.h> #include <cstdlib>
using namespace std;
const int strsize = 20;
struct zpdw { char imie[ strsize ]; char stanowisko[ strsize ]; char pseudozpdw[ strsize ]; int preferencje; } tablica[ 4 ];
int main() { cout << "Zakon Programist\242w Dobrej Woli\n"; cout << "a. lista wg imion b. lista wg stanowisk\n"; cout << "c. lista wg pseudonim\242w d. lista wg preferencji\n"; cout << "q. koniec\n"; tablica[ 0 ].imie[ strsize ] = 'Wimp Macho'; tablica[ 0 ].imie[ strsize ] = 'Raki Rhodes'; tablica[ 0 ].imie[ strsize ] = 'Celia Laiter'; tablica[ 0 ].imie[ strsize ] = 'Hoppy Hipman'; tablica[ 0 ].imie[ strsize ] = 'Pat Hand'; tablica[ 1 ].stanowisko[ strsize ] = 'M\210odszy Programista'; tablica[ 1 ].stanowisko[ strsize ] = '\230redni Programista'; tablica[ 1 ].stanowisko[ strsize ] = 'Starszy Programista'; tablica[ 1 ].stanowisko[ strsize ] = 'M\210odszy Programista'; tablica[ 1 ].stanowisko[ strsize ] = '\230redni Programista'; tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Jeden'; tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Dwa'; tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Trzy'; tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Cztery'; tablica[ 2 ].pseudozpdw[ strsize ] = 'Pseudonim Pi/251/206'; char wybor; while( wybor != 'q' ) { cout << "Wybierz a, b, c, d lub q \n"; wybor = getch(); switch( wybor ) { case 'a': cout << tablica[ 0 ].imie[ strsize ]; break; case 'b': cout << tablica[ 1 ].stanowisko[ strsize ]; break; case 'c': cout << tablica[ 2 ].pseudozpdw[ strsize ]; break; case 'd': break; case 'q': cout << "Do zobaczenia!"; exit( 0 ); break; default: cout << "Niepoprawna warto\230\206!\n"; } } return 0; }
|
|
kistel66 |
» 2017-06-10 21:31:57 Masz tablice znakową o indeksie nr strsize. I do tego jednego, biednego indeksu chcesz wprowadzać całe napisy. Wartości dla struktur spróbuj tak zapisać: tablica[ 0 ] = { "Wimp Macho", "Programista", "Maciek", 3 };
Tak bez problemu dostaniesz się do jakieś wartości poprzez na przykład: cout << tablica[ 0 ].imie;
|
|
Bercik97 Temat założony przez niniejszego użytkownika |
» 2017-06-11 12:47:09 Nie mogę tak zapisać, bo jeśli wybiorę opcje ' a ' to program ma wyświetlić mi imiona wszystkich programistów, a nie tylko jednego. Proszę o pomoc |
|
kistel66 |
» 2017-06-11 14:21:11 To użyj pętli: for( int i = 0; i < 4; i++ ) cout << tablica[ i ].imie << endl;
|
|
Bercik97 Temat założony przez niniejszego użytkownika |
» 2017-06-11 14:36:26 Jak wstawiam tą pętle to program wyświetla mi 4 puste linijki, nie ma tych imion |
|
Luq |
» 2017-06-11 14:56:56 strcpy( tablica[ 0 ].imie, "Wimp Macho" );
Do strcpy musisz dopisać #include <cstring> |
|
Bercik97 Temat założony przez niniejszego użytkownika |
» 2017-06-11 15:10:30 Hmm, zrobiłem tak i wyświetla mi tylko ostatnie imię " Pat Hand " które powinno być na ostatnim miejscu a jest na miejscu pierwszym i pod spodem są 3 puste linijki |
|
Luq |
» 2017-06-11 15:12:30 Wklej kod |
|
« 1 » 2 |