Inserire programma in un ciclo infinito

di il
3 risposte

Inserire programma in un ciclo infinito

Ciao a tutti, qualcuno sarebbe così gentile da dirmi dove sbaglio? Ho provato ad inserire questo programma in un ciclo infinito, ma non funziona!!!!
Grazie mille

//inventare un programma che utilizzi lo switch case e del metodo setw
 
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n;
    int risposta;
    int i=1;
     
     
     cout<<"Inserisci un numero che vada da 1 a 10 e io ti mostrerò nel calcolatore davanti a te in pochissimi attimi di secondo la sua tabellina"<<endl;
    cin>>n;
    
     
   do
    {
    	cout<<"Inserisci un numero che vada da 1 a 10 e io ti mostrerò nel calcolatore davanti a te in pochissimi attimi di secondo la sua tabellina"<<endl;
    cin>>n;
	
    
 
     switch(n)
        {
        case 1:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i;
                
               }    
        break;
         
              
        case 3:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                
               } 
               break;
        case 5:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                
               }
                
               break;
                
        case 7:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                
               }
                
               break;
                
                
        case 9:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                
               }
                
               break;
                
        case 2:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                
               }
                
               break;
                
                
        case 4:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                
               }
                
               break;
                
                
        case 6:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                
               }
                
               break;
                
                
        case 8:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                
               }
                
               break;
                
                
        case 10:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
               while(i<=10)  
               {
                cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                
               }
                
               break;
                
               default: cout<<"mmmh, mi sa che hai inserito un numero sbagliato"<<endl;
               
        }
     cout<<"Vuoi rifarlo????? (si=1/no=0)"<<endl;
     cin>>risposta;
    
    i++;
    }
while(risposta=1);
     
    return 0;
     
}

3 Risposte

  • Re: Inserire programma in un ciclo infinito

    Un errore è sicuramente questo
    while(risposta=1);
    usi l'operatore di assegnamento al posto dell'operatore relazionale == (non preoccuparti è un errore molto frequente).
  • Re: Inserire programma in un ciclo infinito

    Perchè devi usare == e non = per confrontare.
    Comunque potresti semplificare il tutto facendo:

    ...
    ...
    ...
    ...
    cin >> r;
    if (r != 1)
    break;
    }while(true);
  • Re: Inserire programma in un ciclo infinito

    HO fatto la correzione come mi hai detto, ma continua a non funzionare.
    Grazie
    //inventare un programma che utilizzi lo switch case e del metodo setw
     
    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main()
    {
        int n;
        int risposta =0;
        int i=1;
         
         
         cout<<"Inserisci un numero che vada da 1 a 10 e io ti mostrerò nel calcolatore davanti a te in pochissimi attimi di secondo la sua tabellina"<<endl;
        cin>>n;
        
         
       do
        {
        	cout<<"Inserisci un numero che vada da 1 a 10 e io ti mostrerò nel calcolatore davanti a te in pochissimi attimi di secondo la sua tabellina"<<endl;
        cin>>n;
    	
        
     
         switch(n)
            {
            case 1:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i;
                    i++;
                   }    
            break;
             
                  
            case 3:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                    i++;
                   } 
                   break;
            case 5:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                    i++;
                   }
                    
                   break;
                    
            case 7:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                    i++;
                   }
                    
                   break;
                    
                    
            case 9:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                    i++;
                   }
                    
                   break;
                    
            case 2:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                    i++;
                   }
                    
                   break;
                    
                    
            case 4:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                    i++;
                   }
                    
                   break;
                    
                    
            case 6:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                    i++;
                   }
                    
                   break;
                    
                    
            case 8:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                    i++;
                   }
                    
                   break;
                    
                    
            case 10:cout<<endl<<setw(5)<<"i"<<setw(8)<<"n"<<setw(8)<<"n*i"<<endl;
                   while(i<=10)  
                   {
                    cout<<endl<<setw(5)<<i<<setw(8)<<n<<setw(8)<<n*i<<endl;
                    i++;
                   }
                    
                   break;
                    
                   default: cout<<"mmmh, mi sa che hai inserito un numero sbagliato"<<endl;
                   
            }
         cout<<"Vuoi rifarlo????? (si=1/no=0)"<<endl;
         cin>>risposta;
        }
    while(risposta==1);
         
        return 0;
         
Devi accedere o registrarti per scrivere nel forum
3 risposte