[c++] Przeszukawanie tablicy struktur
Ostatnio zmodyfikowano 2014-01-18 22:26
Asalas77 Temat założony przez niniejszego użytkownika |
[c++] Przeszukawanie tablicy struktur » 2014-01-18 14:50:55 Mam taki kod, powinien on pobrać dane kilku książek z klawiatury i potem poszukać tych które kosztuja <10zł i je wyswietlic, ale coś nie działa i pokazuje tylko coś takiego: (czasem kilka razy) Tytul: Autor: Index: 0 Cena: 0 #include <iostream> #include <cstdlib> #include <conio.h>
using namespace std;
struct T_ksiazka { char tytul[ 30 ]; char autor[ 30 ]; int index; float cena; } baza[ 100 ];
void wprowadz( T_ksiazka K ) { cout << "Tytul: "; cin.getline( K.tytul, 30 ); cout << "Autor: "; cin.getline( K.autor, 30 ); cout << "Index: "; cin >> K.index; cout << "Cena: "; cin >> K.cena; }
void szukaj( T_ksiazka K ) { if( K.cena < 10.0 ) { cout << "Tytul: " << K.tytul << endl; cout << "Autor: " << K.autor << endl; cout << "Index: " << K.index << endl; cout << "Cena: " << K.cena << endl; } }
int main() { int i = 0, j = 0; char koniec = 0; do { wprowadz( baza[ i ] ); i++; cout << endl << endl << "Koniec?"; cin.ignore(); koniec = getch(); cout << endl; } while( koniec != 't' && koniec != 'T' ); cout << endl; do { szukaj( baza[ j ] ); j++; cout << endl; } while( j < i ); system( "pause" ); } |
|
leon_w |
» 2014-01-18 15:50:11 Słabo jeszcze ogarniam struktury, ale wydaje mi się że: Deklarujesz 100 elementową tablicę typu T_książka, po czym dane zapisujesz zisujesz zupełnie gdzie indziej. Całej tablicy nie prześlesz do innej funkcji, tylko jej adres. Wydaje mi się że powinno to wyglądać tak: #include <iostream> #include <cstdlib> #include <conio.h>
using namespace std;
struct T_ksiazka { char tytul[ 30 ]; char autor[ 30 ]; int index; float cena; } baza[ 100 ];
void wprowadz( T_ksiazka K[], int ile ) { cout << "Tytul: "; cin.getline( K[ ile ].tytul, 30 ); cout << "Autor: "; cin.getline( K[ ile ].autor, 30 ); cout << "Index: "; cin >> K[ ile ].index; cout << "Cena: "; cin >> K[ ile ].cena; }
void szukaj( T_ksiazka K[], int ile ) { if( K[ ile ].cena < 10.0 ) { cout << "Tytul: " << K[ ile ].tytul << endl; cout << "Autor: " << K[ ile ].autor << endl; cout << "Index: " << K[ ile ].index << endl; cout << "Cena: " << K[ ile ].cena << endl; } }
int main() { int i = 0, j = 0; char koniec = 0; do { wprowadz( baza, i ); i++; cout << endl << endl << "Koniec?"; cin.ignore(); koniec = getch(); cout << endl; } while( koniec != 't' && koniec != 'T' ); cout << endl; do { szukaj( baza, j ); j++; cout << endl; } while( j < i ); system( "pause" ); } }
|
|
Asalas77 Temat założony przez niniejszego użytkownika |
» 2014-01-18 16:35:22 na wykladzie mi wlasnie wykladowca pokazywal ze mozna pisac w funkcji tylko typ i nazwe tablicy, a number elementu tej tablicy tylko w wywolaniu funkcji ale nie pamietam jak to dokladnie pisał i juz nie umiem powtorzyc tego u siebie. To co napisales dziala, ale wlasnie chcialem tym drugim sposobem zrobic. |
|
pekfos |
» 2014-01-18 22:26:31 void wprowadz( T_ksiazka K ) { cout << "Tytul: "; cin.getline( K.tytul, 30 ); cout << "Autor: "; cin.getline( K.autor, 30 ); cout << "Index: "; cin >> K.index; cout << "Cena: "; cin >> K.cena; }
|
Przekazuj przez referencję. |
|
« 1 » |