Newsgroup: it.comp.lang.c++
Titolo: problema (lunghetto)

premettendo che sono alle prime armi col c++ (lo studio da poche settimane,
quando ho tempo), vorrei sapere se qualcuno può risolvere il mio problema:
in un manuale (che finora non mi ha dato problemi) ho trovato il seguente
programmma tra quelli di esempio del costrutto switch, l'ho copiato e il
compilatore non mi da' nessun errore, ma non faccio in tempo a visualizzare
l'output che subito la finestra di dos si chiude, ho provato ad usare system
("pause") o a lanciare il prog direttamente da dos,  ma non è cambiato
nulla.
ecco il prog:
 #include <iostream.h>
#include <stdlib.h>
#include <time.h>
int main()
{
 int seme = time (0);
 srand (seme);
 int a,b,c ;
 a = ( rand() % 52 ) + 1;
 do {
  b = ( rand() % 52 ) + 1;
  } while ( a == b) ;
 do {
  c = ( rand() % 52 ) + 1;
  } while ( (c == a) || (c == b) );
 for (int i; i <= 3; i++) {
  int n;
  switch (i) {
   case 1:
    n = a;
    break;
   case 2:
    n = b;
    break;
   case 3:
    n = c;
    break;
  }
  int carta = (n % 13) + 1;
  int seme = (n - 1) / 13;
  switch (carta) {
   case 1:
    cout <<"Asso di ";
    break;
   case 11:
    cout <<"Fante di ";
    break;
   case 12:
    cout <<"Regina di ";
    break;
   case 13:
    cout <<"Re di ";
    break;
   default :
    cout << carta <<"di ";
  }
  switch (seme) {
    case 0:
     cout <<"cuori";
     break;
    case 1:
     cout <<"quadri";
     break;
    case 2:
     cout <<"fiori";
     break;
    case 3:
     cout <<"picche";
     break;
    }
    cout <<"\n";
     }
   }
 }
grazie a chiunque mi risponderà,
Davide

 ha scritto nel messaggio
news:zdy18.580$ly.1...@twister1.libero.it...


 while(!kbhit())
Se lo scrive cosi' si becca un bel diagnostico dal compilatore
-- 
Maurizio Loreti  - Linux Is Not UniX -  
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 Se lo scrive cosi' si becca un bel diagnostico dal compilatore
non so cosa intendi con "diagnostico".. io uso turbo c++, tutto bello in
dos, e
non da nessun warning ne tantomeno errore..
cos'è il "diagnostico"?
ciao Augusto

 non da nessun warning ne tantomeno errore..
Beh, il MIO compilatore vuole che un "while (condition)" sia seguito
da uno statement da eseguire.  Il tuo no?


  for (int i; i <= 3; i++) {
Manca l'inizializzazione di "i", che, a occhio, va posto =1. Quindi:
for (int i=1; i <= 3; i++) {
Ultima cosa: non fare crosspost, ma individua il newsgroup
giusto e chiedi SOLO su quello.
In questo caso il Newsgroup giusto e' it.comp.lang.c++
ciao
--
Gerolamo
Using: Win2000 Pro, Borland C++ Compiler 5.5.1

 da uno statement da eseguire.  Il tuo no?
Guarda, io per ora (studio informatica a scuola) uso Borland Turbo C++ 3
e un programma del tipo
#include<conio.h>
void main(){
    while(!kbhit());
}
non produce warnings ne errori.
Se lanci il programma rimane tranquillo nel while fino alla pressione di un
tasto.
Fa la stessa cosa del
repeat until keypressed;
di Pascal.
Tu che compilatore usi? Visual C? C Builder?
Ciao, Augusto

 non produce warnings ne errori.
Ma al tuo esempio originale mancava il punto e virgola.
Ciao,
Nicola

 > Se lo scrive cosi' si becca un bel diagnostico dal compilatore
infatti hai perfettamente ragione: non funziona!

> infatti hai perfettamente ragione: non funziona!
non so che dire. ho appena provato, e funziona..
forse non funziona con tutti i compilatori, ma
con il mio turbo C++ si..
a presto, Augusto

 da uno statement da eseguire.  Il tuo no?
Non noti nessuna differenza?
Maurizio te l'ha detta persino chiara: nel secondo caso manca lo
statement che segue il while. Nel primo caso (a parte che il combilatore
sbaglia a non segnalarti il fatto che il main deve ritornare int e non
void) invece lo statement ce lo hai messo (vuoto, per la precisione).
--
Andrea Ferro
IHHC - Member of HT-Group    DVD Authoring operator    Fan of I.Asimov
Brainbench C++ Master:
http://www.brainbench.com/transcript.jsp?pid=2522556
This post express personal opinions which may or may not be the opinons
of the
company(s) I work for. I speak for myself and for myself only.

...mmm..riguardate il programma...ci sono vari errori..fra cui..
1) troppe parentesi }
2) non ritorna....
3) for(int i=0;.....) e non for(int i;.........
cosi funziona..ciao
Andrea
Cereal Killer ha scritto nel messaggio ...
