struktura i typ logiczny

zxc18
Użytkownik
Użytkownik
Posty: 92
Rejestracja: 12 gru 2007, o 14:29
Płeć: Mężczyzna
Lokalizacja: Szczecin
Podziękował: 65 razy
Pomógł: 1 raz

struktura i typ logiczny

Post autor: zxc18 »

mam taki o to program: tresc zadania:

" Zdefiniuj strukturę przechowującą dane katalogowe ksiażki w bibliotece
(tytuł = 50 znaków; autor = 30 znaków; liczba stron = liczba całkowita dodatnia;
wypożyczona = zmienna logiczna) oraz 200-elementową tablicę takich struktur.
Napisz funkcję drukującą na ekranie spis wszystkich
niewypożyczonych książek, które mają więcej niż 100 stron. "

Kod: Zaznacz cały

 #include<iostream>
using namespace std;

struct TKsiazka {
       char tytul[50];
       char autor[30];
       unsigned int liczba_stron;
       bool wypozyczona; };


void wypisz(TKsiazka &a) {
     cout<<"tytul: "<<a.tytul<<endl;
     cout<<"autor: "<<a.autor<<endl;
     cout<<"liczba stron: "<<a.liczba_stron<<endl;
     cout<<"wypozyczona tak/nie "<<a.wypozyczona<<endl;
     cout<<endl<<endl; }

void fnWypozyczona( TKsiazka *b, int n) {
     
     if(b->wypozyczona == false ){
                    if(b->liczba_stron >= 100){
                    for(unsigned int i = 0; i<n; i++){
                                 wypisz(b[i]); } }
                    }
                    }
     
int main()
{
    unsigned int i;
    unsigned int n = 3; //liczba ksiazek w tablicy
    bool tak = true;
    bool nie = false;
    TKsiazka tablica[] = {
             { "Symfonia c++", "Jerzy Grebosz", 236, nie },
             { "Wygraj z c++", "Kris Jamsa", 99, nie },
             { "Thinking in c++", "Bruce Eckel", 657, tak } };
    
    for(i=0; i<n; i++){
             wypisz(tablica[i]); }
             
    cout<<"Ksiazki niewypozyczone majace > 100 stron "<<endl<<endl;
    
    
             fnWypozyczona(tablica, n); 
             
             cin.get();
             }   


I cos mi to nie dziala :/ mozecie wskazac blad i ewnentualnie go poprawic ? z gory dzieki ... pozdrawiam
Awatar użytkownika
dabros
Użytkownik
Użytkownik
Posty: 1121
Rejestracja: 2 cze 2006, o 21:41
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 48 razy
Pomógł: 4 razy

struktura i typ logiczny

Post autor: dabros »

tytul powinien byc typu string

[ Dodano: 30 Grudnia 2007, 18:56 ]
podobnie autor
zxc18
Użytkownik
Użytkownik
Posty: 92
Rejestracja: 12 gru 2007, o 14:29
Płeć: Mężczyzna
Lokalizacja: Szczecin
Podziękował: 65 razy
Pomógł: 1 raz

struktura i typ logiczny

Post autor: zxc18 »

ale to nie zmienia postaci rzeczy przeciez ?? nic nie wniesie do zadania ...

EDIT: ok juz nie potrzeba pomocy, dalem sobie rade ... dzieki za checi
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

struktura i typ logiczny

Post autor: smiechowiec »

Pozwolę sobie wyjaśnić w czym może tkwić sedno, gdyby ktoś spotkał podobny problem.
Wydaje mi się, że chodzi o kolejność warunku i pętli.
Pętla powinna być na zewnątrz, aby sprawdzenie warunku odbywało się dla każdego elementu tablicy, bo inaczej sprawdzenie następuje jeden raz a potem wypisujemy wszystkie elementy.
Kod mógłby wyglądać np. tak

Kod: Zaznacz cały

void fnWypozyczona( TKsiazka b[], int n) {
  for(int i = 0; i < n; i++)
    if (!b[i].wypozyczona && (b[i].liczba_stron >= 100))
        wypisz(b[i]);
}
ODPOWIEDZ