[C++] Ma dove sbaglio?

  • Autore discussione Autore discussione Mattia Campagna
  • Data d'inizio Data d'inizio
Pubblicità
M

Mattia Campagna

Ospite
Questo è il main della mia funzione, sembra che abbia problemi sul "cin", perchè? Includo anche l'enumerazione e la lista.

// MAIN
Codice:
int main() {   lista L0; stato A;
  cin >> A;
  inizializza(L0); 
  aggiungi(L0, A); 
  aggiungi(L0, A); 
  aggiungi(L0, A); 
  aggiungi(L0, A); 
  aggiungi(L0, A); 
  aggiungi(L0, A);
  aggiungi(L0, A);
  aggiungi(L0, A);
  
  stampa(L0); 
  system ("pause"); 
    return 0; 
  }

// ENUM E LISTA
Codice:
#include <iostream> 
#include <cstdlib> 
using namespace std; 


enum stato {L, O};  
struct elem {stato s; elem* pun;}; 
struct lista {elem* p0;};// testa della lista 


void inizializza(lista& L) { 
  L.p0 = NULL; 
}

// EVENTUALMENTE ECCO TUTTO IL CODICE
Codice:
/* Sia data la struttura seguente:


enum stato {L, O};  


struct elem {
       stato stat;
       elem* pun;
}; 


Scrivere una funzione che:
Data una lista di elementi di tipo  elem, elimina dalla lista tutti gli 
elementi il cui stato è  L e restituisce il numero degli elementi eliminati. */


#include <iostream> 
#include <cstdlib> 
using namespace std; 


enum stato {L, O};  
struct elem {stato s; elem* pun;}; 
struct lista {elem* p0;};// testa della lista 


void inizializza(lista& L) { 
  L.p0 = NULL; 
} 


void aggiungi(lista& L, stato stat) 
{ 


  elem * p = new elem; 
  p->s = stat; 
  p->pun = L.p0; 
  L.p0 = p; 
} 


void stampa(lista l) 
{ 
  elem * p = l.p0; 
  int n=0; 
  while (p) 
  { 
    cout << "elemento[" << n << "] = " << "{" << p->s << "}" << endl; 
    n++; 
    p = p->pun; 
  } 
} 




int main() { 
  lista L0; stato A;
  cin >> A;
  inizializza(L0); 
  aggiungi(L0, A); 
  aggiungi(L0, A); 
  aggiungi(L0, A); 
  aggiungi(L0, A); 
  aggiungi(L0, A); 
  aggiungi(L0, A);
  aggiungi(L0, A);
  aggiungi(L0, A);
  
  stampa(L0); 
  system ("pause"); 
    return 0; 
  }
 
Uhm, gli stati in input li dai usando i caratteri L e O? In tal caso, è questo l'errore. Infatti i tipi enumerativi corrispondono ad interi, nel tuo caso lo stato L corrisponde allo 0 e lo stato S a 1.
 
Uhm, gli stati in input li dai usando i caratteri L e O? In tal caso, è questo l'errore. Infatti i tipi enumerativi corrispondono ad interi, nel tuo caso lo stato L corrisponde allo 0 e lo stato S a 1.

Scusa, non ti seguo..
Il programma non compila proprio, in imput non ho ancora passato nulla.
 
Pubblicità
Pubblicità
Indietro
Top