Newsgroup: it.comp.lang.c
Titolo: AIUTO!!! PROGRAMMA TRAGHETTI in C

#include
#include
#include
#define NUMVIAGGI 15
#define LUNGTARGA 7
/*typedef int Tipocodice[NUMVIAGGI];*/
typedef char Tipotarga[LUNGTARGA+1];
struct
ti{ 
int codice; 
int postioccupati; 
int postitotali; 
}; 
typedef struct posti Tipoposti; 
struct veicolo{ 
char a; 
char b; 
}; 
typedef struct veicolo Tipoveicolo; 
struct file{ 
Tipotarga targa; 
char veicolo; 
int codice; 
}; 
typedef struct file Tipofile; 
struct lista{ 
Tipotarga targa; 
int codice; 
struct lista *next; 
}; 
typedef struct lista Nodolista; 
typedef Nodolista *Tipolista; 
typedef int bool; 
#define TRUE 1 
#define FALSE 0 
/**********PUNTO 2**************/ 
int trasformacodice(char veicolo) 
{ 
int occ; 
if(veicolo== 'a') 
occ=1; 
else 
occ=2; 
return occ; 
} 
int trovanave(Tipoposti viaggio,int occupazione,int codice) 
{ 
int nuovocodice=-1; 
bool trovato = FALSE; 
while(!trovato && (codice <=14)){ /*<-------ERRORE!!!!???*/
if((viaggio.postioccupati)+(occupazione)<= (viaggio.postitotali))        { /*Dopo piů di 3 volte che fai il ciclo*/ 
nuovocodice=codice+1; /*invece che andare avanti, il codice torna indietro*/ 
viaggio.postioccupati=viaggio.postioccupati+(occupazione); 
trovato=TRUE; 
} 
else { 
printf("Inserire il numero di posti totali del traghetto numero %d :\n",codice+1); 
scanf("%d", &viaggio.postitotali); 
printf("Inserire il numero di posti occupati del traghetto numero %d :\n",codice+1); 
scanf("%d", &viaggio.postioccupati); 
trovanave(viaggio,occupazione,(codice+1)); 
} 
} 
return nuovocodice; 
} 
/*********PUNTO 3*************/ 
Tipolista crealista(char *nomefile, Tipoposti viaggio) 
{ 
FILE *fp; 
Tipofile file; 
Tipolista aux, lista=NULL; 
int occupaz=0; 
if((fp=fopen(nomefile,"r"))==NULL){ 
printf("ERRORE!!!!!\n"); 
exit(1); 
} 
fscanf(fp,"%7s%2c%d", file.targa,&file.veicolo,&file.codice); 
while(!feof(fp)){ 
occupaz=trasformacodice(file.veicolo); 
aux= malloc(sizeof(Nodolista)); 
strcpy(aux->ta
rga,file.targa);
aux->codice=trovanave(viaggio,occupaz,(file.codice)-1);
aux->next=lista;
lista = aux;
fscanf(fp,"%7s%2c%d", file.targa,&file.veicolo,&file.codice);
}
fclose(fp);
return lista;
}
/* FUNZIONI AUSILIARIE USATE NEL DRIVER */
void stampalista(Tipolista lis)
{ 
while(lis!=NULL){ 
printf("%-7s%d\n", lis->targa,lis->codice); 
lis=lis->next; 
} 
} 
int main() 
{ 
char nomefile[256]; 
char veicolo; 
int occupazione=0; 
Tipoposti viaggio; 
int codice=0; 
int nuovocodice; 
Tipolista lis; 
bool giusto=FALSE; 
printf("Inserire il tipo di veicolo(a= 1posto/ b=2 posti):\n"); 
scanf("%c", &veicolo); 
printf("Inserire il codice del traghetto da prendere(compreso tra 0 e 14): \n"); 
scanf("%d", &codice); 
while(giusto!=TRUE){ 
if(codice>14){ 
printf("Errore!!\nRiprovare!!\n"); 
printf("Inserire il codice del traghetto da prendere(compreso tra 0 e 14): \n"); 
scanf("%d", &codice); 
}else 
giusto=TRUE; 
} 
occupazione= trasformacodice(veicolo); 
printf("Inserire il numero di posti totali del traghetto numero %d :\n",codice); 
scanf("%d", &viaggio.postitotali); 
printf("Inserire il numero di posti occupati del traghetto numero %d :\n",codice); 
scanf("%d", &viaggio.postioccupati); 
/*printf("occupazione = %d\n", occupazione);*/ 
nuovocodice= trovanave(viaggio,occupazione,codice); 
printf("%d\n", nuovocodice); 
printf("Inserire il nome del file da aprire:\n"); 
scanf("%s", nomefile); 
lis= crealista(nomefile,viaggio); 
stampalista(lis); 
return 0; 
} 
IL PROBLEMA STA NELLA FUNZIONE TROVANAVE!!
AIUTATEMI GRAZIE!!

 toh, chi si vede... ;)
daje aiutami!:D

 AIUTATEMI GRAZIE!!
Perche' gridi? Quale problema? Qualche spiegazione?

 poi com'è andata?
22!
poi il programma che ho postato è sbagliato, l'ho rifatto creando la
struttura.
Poi cmq ne ha steccati alcuni...

 Perche' gridi? Quale problema? Qualche spiegazione?
perchè è vietato??
cmq il prblema sono riuscito a risolverlo!


diciamo che e` fortemente sconsigliato dall'RFC 1855.
Adieu,
-- 
Lestat de Lioncourt                               |          Ciro Mattia Gonano
  JabberID: 
les...@jabber.students.cs.unibo.it
    |    Undergraduate Student in
  ICQ#: 52631406                                  |         Computer Science at
  URL: 
http://www.CS.UniBO.It/~gonano
             |       University of Bologna
            <powered by Linux Slackware 8.1 on Kernel 2.4.18-xfs>

diciamo che e` fortemente sconsigliato dall'RFC 1855.
Oltre ad essere sconsigliato (come in RL urlare da' fastidio):
- il maiuscolo si legge piu' difficilmente, quindi si e' meno
invogliati a leggerlo
- quando uno vede richieste in maiuscolo tende a saltare il thread
(soprattutto se e' il titolo a essere in maiuscolo)
- indisponi chi ti vorrebbe rispondere (per i vari motivi sopra
elencati), il che significa meno risposte, meno cortesi :)
:)
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."


non pensavo che dietro una scritta in maiuscolo si celassero tutti questi
significati...sono alquanto sorpreso! :-o

 wrote in message
news:afmcl5$bni$1...@lacerta.tiscalinet.it...

Un
  :-o
non ti sorprende come significativo?
;-)

 significati...sono alquanto sorpreso! :-o
Un
  :-o
non ti sorprende? IMHO dovrebbe molto di piu'.
;-)