Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [C++]Aiuto stack con più variabili!!

    Salve a tutti!
    Sono uno studente di informatica al primo anno e sto riscontrando difficoltà a programmare uno stack con più variabili (premetto che ad una mi riesce tranquillamente).
    Non capisco come mai in questo codice Dev C++ mi dia errori sui dati di tipo long int e float!
    Una mano sarebbe molto apprezzata!!!!
    Ecco il codice:

    codice:
    #include<iostream>
    #include<stdlib.h>
    #include<string>
    using namespace std;
    
    
    class Libro{
        public: 
            int top;
            char titolo[30];
            char autore[20];
            float prezzo;
            long int data;
    }libro;
    
    
    void creastack (Libro &libro){
        libro.top= -1;
    }
    
    
    void distruggistack (Libro &libro){
        libro.top= -1;
    }
    
    int push(Libro &libro, char &nuovotitolo, char &nuovoautore, float &nuovoprezzo, long int &nuovodata){
        libro.top++;
        libro.titolo[libro.top] = nuovotitolo;
        libro.autore[libro.top] = nuovoautore;
        libro.prezzo[libro.top] = nuovoprezzo;
        libro.data[libro.top] = nuovodata;
        } 
        
    
    void pop(Libro &libro, char &apparsotitolo, char &apparsoautore, float &apparsoprezzo, long int &apparsodata){
            apparsotitolo = libro.titolo[libro.top];
            apparsoautore = libro.autore[libro.top];
            apparsoprezzo = libro.prezzo[libro.top];
            apparsodata = libro.data[libro.top];
            libro.top--;
    }
    
        int main() {
                Libro libro;
    
    
                void creastack();
                char apparsotitolo[30], nuovotitolo[30];
                char apparsoautore[20], nuovoautore[20];
                float apparsoprezzo, nuovoprezzo;
                long int apparsodata, nuovodata;
                char quest, d;    
                cout<<"Vuoi inserire i dati (s/n) ?\n";
                cin>>quest;
                while(quest=='s' || quest =='S') {
                        cout<<"Inserisci i dati di ogni libro secondo l'ordine titolo, autore, prezzo e data: ";
                        cin >> nuovotitolo;
                        cin >> nuovoautore;
                        cin >> nuovoprezzo;
                        cin >> nuovodata;
                        push (libro, nuovotitolo[30], nuovoautore[20], nuovoprezzo, nuovodata);
                        cout<<"Vuoi inserire ancora altri dati (s/n) ?\n";
                        cin>>quest;
                    }
                
                cout<<"Vuoi cancellare l'ultimo elemento? s/n \n";
                cin>>d;
                if(d=='s' || d=='S'){
                    
                    pop(libro, apparsotitolo[30], apparsoautore[20], apparsoprezzo, apparsodata);
                    cout<<apparsotitolo<<"\n"<<apparsoautore;
                        
                    cout<<apparsoprezzo<<"\n"<<apparsodata;
            
                }    
                else{
                
                    system("pause");
                }    
                        
                
                system("pause");
        }
    Ultima modifica di LeleFT; 21-05-2015 a 10:08 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    @DumbProgrammer: quando posti del codice, inseriscilo all'interno degli appositi tag [CODE] .. [/CODE] così da mantenerlo indentato e formattato, quindi più leggibile.

    Ho aggiunto io i tag nel tuo messaggio.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie e scusami!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma di quali errori parli esattamente?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma di quali errori parli esattamente?
    Questi:
    codice:
    	In function 'int push(Libro&, char&, char&, float&, long int&)':
    30	24		[Error] invalid types 'float[int]' for array subscript
    30	42		[Error] invalid types 'float[int]' for array subscript
    31	22		[Error] invalid types 'long int[int]' for array subscript
    31	38		[Error] invalid types 'long int[int]' for array subscript
    	In function 'void pop(Libro&, char&, char&, float&, long int&)':
    38	41		[Error] invalid types 'float[int]' for array subscript
    39	37		[Error] invalid types 'long int[int]' for array subscript

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh, è corretto che ti dia quegli errori ... Ad esempio, il

    prezzo

    nella struttura non è un array ma un singolo valore. Quindi perché scrivi

    libro.prezzo[libro.top] = nuovoprezzo;

    intendendo con

    prezzo[libro.top]

    che prezzo sia un array?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Grazie per l'aiuto ma ho un problema lo stesso..ora il compilatore non segna più nulla ma dopo che inserisco i dati di un solo libro il programma va in crash...qualche idea??

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma tu che correzione hai fatto?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Quello che mi hai detto tu! Ho tolto l'array dal prezzo e dalla data, tuttavia il programma crasha!

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se magari posti il codice che crasha si può vedere il perché ... se continui a non mostrarlo non andiamo molto avanti ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.