Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - per favore ho bisogno di una mano
Forum - C/C++ - per favore ho bisogno di una mano

Avatar
mauro91 (Normal User)
Newbie


Messaggi: 13
Iscritto: 19/04/2009

Segnala al moderatore
Postato alle 19:13
Giovedì, 24/09/2009
ciao a tutti.
devo fare un programma con i vettori paralleli ma nn mi esce potreste darmi una mano...grazie in anticipo.la traccia è questa:
siano dati in input 4 vettori paralli contenenti sigla,luogo di partenza,destinazione e posti disponibili di un vuolo.scrivere un programma che dalla ricerca della sigla dica se il volo è esiste o no.se il volo esiste bisogna vedere se ci sono posti disponibili.se quest'ultimi ci sono scrivere il nome,il cognome e il volo del passeggero.ogni volta che si inserisce un passeggero bisona diminuire di uno i posti.
questo è quello che ho fatto io
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
    const int n=4;
    int i,postidis[n],flag,ric1,c=0;
    string sigla[n],orig[n],dest[n],sigla1[n],cognome[n],nome[n],ric;
    //caricamento
    for(i=0;i<n;i++)
    {
                    cout<<"immetti la sigla";
                    cin>>sigla;
                    cout<<"immetti la partenza";
                    cin>>orig;
                    cout<<"immetti la destinazione";
                    cin>>dest;
                    cout<<"immetti i posti disponibili";
                    cin>>postidis;
    }
    do
    {
                    cout<<"immetti la sigla da cercare";
                    cin>>ric;
                    flag=0;
                    for(i=0;i<n;i++)
                    {
                                    if(ric==sigla)
                                    {
                                                     cout<<orig;
                                                     cout<<"   "<<dest;
                                                     cout<<"   "<<postidis;
                                                     flag=1;
                                    }
                    }
                    if(flag==0)
                    cout<<"non esiste";
    }
    if()
    while(ric=="0");
    do
    {
                  cout<<"guarda se ci sono posti disponibili";
                  cin>>ric1;
                  flag=0;
                  for(i=0;i<n;i++)
                  {
                                  if(ric1==postidis)
                                  {
                                                      postidis=postidis-1;
                                                      c=i+1;
                                                      flag=1;
                                  }
                  }
                  if(flag==0)
                  cout<<"non ci sono piu' posti disponibili";
    }
    while(ric1==0);
    for(i=0;i<c;i++)
    sigla1[c]=sigla;
    {
                       cout<<"immetti il nome del passeggero";
                       cin>>nome;
                       cout<<"immetti il cognome del passeggero";
                       cin>>cognome;
                       cout<<"immetti il volo";
                       cin>>sigla;
    }
    return 0;
}
    
                                                    
          

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:50
Giovedì, 24/09/2009
1) devi inserire il codice tra i tag CODE altrimenti non si capisce nulla e non hai nessuna risposta ...

2) devi dire esattamente cosa non va ... mica ce lo possiamo inventare ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
andrex91 (Member)
Pro


Messaggi: 101
Iscritto: 01/05/2009

Segnala al moderatore
Postato alle 17:57
Venerdì, 25/09/2009
Vedo dal codice che hai le idee molto confuse.
Ora sono di fretta ma quando torno voglio studiarci su, dato che anche io sto apprendendo (autodidatta) il c++ e voglio fare un po di esercizio

Ultima modifica effettuata da andrex91 il 25/09/2009 alle 17:58


Provare e riprovare
PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 9:18
Domenica, 27/09/2009
è tutto molto confuso davvero. Ti dico gli errori che riesco a notare a primo impatto

hai dichiarato
Codice sorgente - presumibilmente C/C++

  1. const int n=4;
  2.     string sigla[n],orig[n],dest[n],sigla1[n],cognome[n],nome[n],ric;


però subito dopo

Codice sorgente - presumibilmente Plain Text

  1. for(i=0;i<n;i++)
  2.     {
  3.                     cout<<"immetti la sigla";
  4.                     cin>>sigla;
  5.                     cout<<"immetti la partenza";
  6.                     cin>>orig;
  7.                     cout<<"immetti la destinazione";
  8.                     cin>>dest;
  9.                     cout<<"immetti i posti disponibili";
  10.                     cin>>postidis;
  11.     }


tu incrementi l'indice ma non lo usi. dovrebbe essere cosi:
Codice sorgente - presumibilmente Plain Text

  1. for(i=0;i<n;i++)
  2.     {
  3.                     cout<<"immetti la sigla";
  4.                     cin>>sigla[i];
  5.                     cout<<"immetti la partenza";
  6.                     cin>>orig[i];
  7.                     cout<<"immetti la destinazione";
  8.                     cin>>dest[i];
  9.                     cout<<"immetti i posti disponibili";
  10.                     cin>>postidis[i];




stessa cosa qui sotto:
Codice sorgente - presumibilmente Plain Text

  1. if(ric==sigla)



ric è una variabile di tipo string e va bene, ma sigla è un vettore quindi gli devi dare un indice. quindi:
Codice sorgente - presumibilmente Plain Text

  1. if(ric==sigla[i])



poi...
Codice sorgente - presumibilmente Plain Text

  1. if()


???


insomma tutti gli errori sono dovuti alla mancanza di
Codice sorgente - presumibilmente Plain Text

  1. [i]

. cosa molto strana perchè i cicli for li metti :O


edit:  ho notato un altra cosa.
in realtà non dovresti scrivere
Codice sorgente - presumibilmente Plain Text

  1. for(i=0;i<n;i++)
  2.     {
  3.                     cout<<"immetti la sigla";
  4.                     cin>>sigla[i];
  5.                     cout<<"immetti la partenza";
  6.                     cin>>orig[i];
  7.                     cout<<"immetti la destinazione";
  8.                     cin>>dest[i];
  9.                     cout<<"immetti i posti disponibili";
  10.                     cin>>postidis[i];
  11.     }


altrimenti cosi ti chiede per n volte queste 4 domande, che a quando ho capito devono essere chieste una sola volta. in tal caso ti basta dichiarare come variabili di tipo string sigla orig dest e postidis, e quindi togliere quel ciclo for
(stessa cosa negli altri punti)

Ultima modifica effettuata da NickoMaiden il 27/09/2009 alle 9:22


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 9:38
Domenica, 27/09/2009
L'indice c'e' ... ed e' [ i ] ...

Il fatto e' che non appare perche' non ha postato utilizzando i tag CODE e viene interpretato come comando per passare al corsivo ...

Ecco perche' gli dicevo di postare con i tag CODE altrimenti non si capiva nulla ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 9:46
Domenica, 27/09/2009
Testo quotato

Postato originariamente da theprogrammer:

L'indice c'e' ... ed e' [ i ] ...

Il fatto e' che non appare perche' non ha postato utilizzando i tag CODE e viene interpretato come comando per passare al corsivo ...

Ecco perche' gli dicevo di postare con i tag CODE altrimenti non si capiva nulla ...



ah capito. allora scusatemi tanto!


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Avatar
andrex91 (Member)
Pro


Messaggi: 101
Iscritto: 01/05/2009

Segnala al moderatore
Postato alle 10:37
Domenica, 27/09/2009
Il ciclo for è giusto, perchè vuole riempire differenti vettori che contengono le caratteristiche di 4 voli diversi. Poi dopo aver preso in input una sigla, la cerca nel vettore sigla e se la trova registra una prenotazione per quel volo.
Però si è dimenticato di fare il ciclo che gli permette effettuare più ricerche; da come lo ha scritto, dopo aver cercato la prima sigla il programma termina e per di più non cè nessun tipo di output finale.:nono:



Provare e riprovare
PM Quote