Salve, sto da poco imparando il C++ e sono alle prese con un programma semplice di per sé. Ci sono i commenti, quindi, eccolo:
//Impariamo le Tabelline, 5 tentativi se sbaglia e finchè l'utente non digita "termina"
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <time.h>
#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include <math.h>
using namespace std;
int a,b,risultato,input,giusto,i;
char termina[8];
int main ()
{
a=rand()%10+1; //Inizializza a(valore casuale da 1 a 10)
b=rand()%10+1; //Inizializza b(valore casuale da 1 a 10)
cout<<a<<"*"<<b<<endl; //Stampa di a e b
risultato=a*b; //Inizializza risultato
while(risultato>0) //Finché il risultato non è maggiore di 0 (è opzionale, posso anche toglierlo)
{
for(i=0,i>=5,i++) //Operatore d'incremento i; i inizializzato a 0. Si ripete finché i non è >=5; si incrementa la i(i++);
{
cin>>input; //Immetti l'input, che sarebbe la tua risposta
if(input==risultato) //Se hai ingarrato la risposta
{
giusto=rand()%5+1; //giusto puo' avere 4 valori
switch(giusto)
{
case 1: //caso 1
cout<<"Bravo \n";
break;
case 2: //caso 2
cout<<"Ottima risposta \n";
break;
case 3: //caso 3
cout<<"Continua cosi' \n";
break;
case 4: //caso 4
cout<<"Stai nettamente migliorando \n";
break;
} //Chiusura switch
Sleep(2000); //attesa di 2s
cout<<"Scrivi termina per terminare \n";
cin>>termina;
while(strcmp (termina,"termina")==0); //ripeti l'immissione di termina finché termina non è uguale alla scritta "termina"
{
cin>>termina;
return 1;
} //Chiusura while
} //Chiusura if
else //Altrimenti se input non è uguale al risultato
{
cin>>input; i++; //Riscrivi l'input
if(input==risultato) //E se questa volta hai ingarrato, dai la risposta di congratulazioni e in fine termina, come sopra
{
giusto=rand()%5+1;
switch(giusto)
{
case 1: //caso 1
cout<<"Bravo \n";
break;
case 2: //caso 2
cout<<"Ottima risposta \n";
break;
case 3: //caso 3
cout<<"Continua cosi' \n";
break;
case 4: //caso 4
cout<<"Stai nettamente migliorando \n";
break;
} //Chiusura switch
Sleep(2000); //Attesa di 2s
cout<<"Scrivi termina per terminare \n";
cin>>termina;
while(strcmp (termina,"termina")==0); //ripeti l'immissione di termina finché termina non è uguale alla scritta "termina"
{
cin>>termina;
return 1;
} //Chiusura while
} //Chiusura if
} //Chiusura for
} //Chiusura conetenitore while
system("pause");
return 0;
}
Ora, alla compilazione mi da questi errori:
Compilatore: Default compiler
Esecuzione di g++.exe...
g++.exe "C:\...\tabelline.cpp" -o "C:\Users\Luigi\Desktop\esercizi c++\5giugno\tabelline.exe" -g3 -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" -g3
C:\Users\...\tabelline.cpp: In function `int main()':
C:\Users\...\tabelline.cpp:31: error: expected `;' before ')' token
C:\Users\...\tabelline.cpp:85: error: expected primary-expression before '}' token
C:\Users\...\5giugno\tabelline.cpp:85: error: expected `;' before '}' token
C:\Users\...\tabelline.cpp:85: error: expected primary-expression before '}' token
C:\Users\...\tabelline.cpp:85: error: expected `)' before '}' token
C:\Users\...\tabelline.cpp:85: error: expected primary-expression before '}' token
C:\Users\...\tabelline.cpp:85: error: expected `;' before '}' token
Esecuzione terminata
Premetto che uso DEV C++ come compilatore, e sono su SO Windows 7 Ultimate, numero seriale: ti piacerebbe xD
Potreste aiutarmi? Ora vado a presentarmi
P.S: ho appena rieditato il codice, mi sono acorto che c'erano delle graffe di troppo e che avevo inserito dopo i case degli switch, i punto e virgola invece dei due punti, ma da comunque gli stessi errori. Il primo errore lo da sul for...poi sul return 0 e in seguito alla riga di chiusura dell' int main (la parentesi graffa). Help plz