Struktura z tablicą dynamiczną
Ostatnio zmodyfikowano 2016-03-15 16:40
TheD3luxed Temat założony przez niniejszego użytkownika |
Struktura z tablicą dynamiczną » 2016-03-15 16:22:47 Witam. Uczę się programować i nie potrafię napisać zadanego mi programu. Do rzeczy: Zadanie jest bardziej rozbudowane, natomiast już na początku nie potrafię sobie poradzić. struct Towary { string towar; string cena; int id; string rodzaj; };
int * Towar, ile;
int uzupelnij( int & ile ) { cout << "Podaj ile Towarow"; cin >> ile; Towary * Towar = new Towary[ ile ]; for( int i = 0; i < ile; i++ ) { cout << "Podaj rodzaj towaru" << endl; cin >> Towar[ i ].rodzaj; cout << "Podaj nazwe towaru" << endl; cin >> Towar[ i ].towar; cout << "Podaj cene towaru" << endl; cin >> Towar[ i ].cena; Towar[ i ].id = i + 1; } }
int wyswietl() { for( int i = 0; i < ile; i++ ) { cout << Towar[ i ].rodzaj; } }
Problem w tym, że nie wiem jak zadeklarować tablicę dynamiczną w strukturze. Przy obecnej konstrukcji wyskakuje blad: "[Error] request for member 'rodzaj' in '*(Towar + ((sizetype)(((long long unsigned int)i) * 4ull)))', which is of non-class type 'int' Problem pewnie leży w tym, że *Towar jest intem. Niestety nie wiem jak inaczej to zrobić... Ktoś pomoże początkującemu programiście? :) PS. W tresci zadania jest m.in taki zapisek: Program powinien być napisany zgodnie z paradygmatem proceduralnym, a więc w ramach realizacji programu należy utworzyć: 1) Strukturę ”Towary” składającą się z pól: towar, cena, id, rodzaj 2) Dynamiczną tablicę typu zdefiniowanego przez użytkownika 3) funkcję „uzupełnij” przeciążoną wskaźnikiem na tablicę struktur |
|
Pokropow |
» 2016-03-15 16:28:34 Towar nie jest zmienną globalną. Przekazuj zmienną towar przez referencę, albo zrób zmienną Towar typu Towary globalną (a nie typu int) i wyrzuć jej deklarację z wnętrza funkcji np.: #include <iostream> using namespace std; #include <cstring>
struct Towary { string towar; string cena; int id; string rodzaj; };
Towary * Towar; int ile;
int uzupelnij() { cout << "Podaj ile Towarow"; cin >> ile; Towar = new Towary[ ile ]; for( int i = 0; i < ile; i++ ) { cout << "Podaj rodzaj towaru" << endl; cin >> Towar[ i ].rodzaj; cout << "Podaj nazwe towaru" << endl; cin >> Towar[ i ].towar; cout << "Podaj cene towaru" << endl; cin >> Towar[ i ].cena; Towar[ i ].id = i + 1; } }
int wyswietl() { for( int i = 0; i < ile; i++ ) { cout << Towar[ i ].rodzaj; } }
int main() { uzupelnij(); wyswietl(); }
|
|
TheD3luxed Temat założony przez niniejszego użytkownika |
» 2016-03-15 16:40:26 Działa ;) O to mi chodziło. Dzięki za pomoc :) |
|
« 1 » |