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");
}