Newsgroup: it.comp.lang.c
Titolo: aiuto programmino in c

ciao a tutti, sto facendo un corso in c.
Ho fatto un programma sul pc in aula usando il visual c++ 6.0. Il programma
qui andava benissimo. Ho portato a casa il listato, l'ho ricompilato con il
dev-cpp. Non mi da nessun errore di compilazione, quando il programma mi
dovrebbe chiamare una qualsiasi funzione mi da il solito errore di windows
xp, cioč quello di inviare la segnalazione.
Non capisco assolutamente perchč!! Vi incollo i 3 file: main.c, header.h,
funzioni.c. Io non riesco a capire l'errore, magari essendo abitutato a
programmare in visual c, sbaglio qualcosa. Vi prego aiutatemi che sto
sbroccando!
grazie a tutti.
Ecco i tre file:
------------------ main.c----------------------------------
#include "header.h"
int main(int argc, char *argv[])
{
    struct posto cinema[3][3];
 char scelta;
 inizializza_cinema(cinema);
  do
 {
  menu();
  fflush(stdin);
  scelta=getche();
  switch(scelta)
  {
  case '1':
   {
    posti_vuoti(cinema);
    break;
   }
  case '2':
   {
    controllo_posto(cinema);
    break;
   }
  case 'x':
  case 'X':
   break;
  default:
   {
    system("CLS");
    menu();
   }
  }
 }while(!((scelta=='x') || (scelta=='X')));
  system("PAUSE");
  return 0;
}
---------------- header.h --------------------------
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
//strutture
struct cliente
{
 char nome[20];
 char cognome[20];
 char telefono[15];
};
struct posto
{
 char idPosto[3];
 int flag;
 struct cliente spettaore;
};
//funzioni
void inizializza_cinema(struct posto cine[3][3]);
int cinema_pieno(struct posto cine[3][3]);
void posti_vuoti(struct posto cine[3][3]);
void assegna_posto(struct posto cine[3][3],char x, char y);
void controllo_posto(struct posto cine[3][3]);
void menu();
--------------------- funzioni.c ----------------------------
#include "header.h"
//inizializza la struttura cinema a 0, con idposto la sua stessa posizione
void inizializza_cinema(struct posto cine[3][3])
{
 char i,j;
 for (i='A';i<='C';i++)
 {
  for (j='1';j<='3';j++)
  {
   cine[i][j].flag=0;
   cine[i][j].idPosto[0]=i;
   cine[i][j].idPosto[1]=j;
   cine[i][j].idPosto[2]='\0';
  }
 }
}
//stampa i posti che non sono prenotati
void posti_vuoti(struct posto cine[3][3])
{
 char i,j;
 printf("\n\n");
 for (i='A';i<='C';i++)
 {
  printf("\n");
  for(j='1';j<='3';j++)
  {
   if (cine[i][j].flag==0)
    printf("%s\t",cine[i][j].idPosto);
  }
 }
}
// controlla se il cinema č pieno e restituisce quanti posti sono prenotati
int cinema_pieno(struct posto cine[3][3])
{
 int conta;
 char i,j;
 for (i='A';i<='C';i++)
 {
  for(j='1';j<='3';j++)
  {
   if (cine[i][j].flag==1)
     conta++;
  }
 }
 return conta;
}
//assegna il posto alla persona
void assegna_posto(struct posto cine[3][3],char x, char y)
{
 printf("\nIl posto e\' vuoto, te lo riserviamo a te!");
 printf("\nInserisci il nome: ");
 gets(cine[x][y].spettaore.nome);
 printf("\nInserisci il cognome: ");
 gets(cine[x][y].spettaore.cognome);
 printf("\nInserisci il Telefono: ");
 gets(cine[x][y].spettaore.telefono);
 cine[x][y].flag=1;
}
//controlla i posti se sono assegnati o no
void controllo_posto(struct posto cine[3][3])
{
 int flag_cinema_pieno;
 char x,y;
 printf("\nInserisci il posto che vorresti prenotare diviso da virgole
(riga,colonna) : ");
 scanf("%c,%c",&x,&y);
 x=toupper(x);
 y=toupper(y);
 fflush(stdin);
 flag_cinema_pieno=cinema_pieno(cine);
 if (flag_cinema_pieno!=9) //se il cinema non č pieno
 {
  if (cine[x][y].flag==0)  //controlla se il posto che uno vuole prenotare č
vuoto
  {
   assegna_posto(cine,x,y);
  }
  else //il posto č gia occupato
  {
   printf("\nIl posto e\' gia\' prenotato");
   printf("\nI posti liberi sono: ");
   posti_vuoti(cine);
   printf("\nInserisci il posto che vorresti prenotare diviso da virgole
(riga,colonna) : ");
   scanf("%c,%c",&x,&y);
   fflush(stdin);
   x=toupper(x);
   y=toupper(y);
   assegna_posto(cine,x,y);
  }
 }
 else
  printf("IL CINEMA E' PIENO, OGGI DISCO!!!");
}
void menu()
{
 printf("\n\n****************-MENU\' PRINCIPALE-****************");
 printf("\n[1]...Visualizza posti vuoti");
 printf("\n[2]...Prenotazione posto");
 printf("\n[X]...Esci ");
 printf("\n***************************************************\n");
 printf("\n\nScelta: ");
}

 }
Uff, ok, fine del papiro! Da me, con queste correzioni, sembra 
funzionare bene, vista l'ora ho sicuramente scritto cazzate ;)
Saluti!
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003

Mattia Belletti wrote:
[...cut...]
Di la verità: sei un insegnante? :-)
In ogni caso ... complimenti per le "delucidazioni" sul codice ...
preciso ed esaustivo! :-)
Ciao!
-- 
..::[ Panz ]::..
-----------------------
per rispondere riscrivi in numeri la mia eMail!

 preciso ed esaustivo! :-)
Eheh, senza offesa per alcun insegnante che legge questo newsgroup, ma 
Dio me ne scampi e liberi ;)
