Ciclo Do while dentro for

di il
5 risposte

Ciclo Do while dentro for

Salve a tutti! Sono nuovo, mi chiamo Matteo e scrivo dalla provincia di Catania. Avevo una domanda molto importante e sopratutto urgente da chiarire: E' possibile inserire un ciclo Do while dentro un ciclo for? Ecco l'esempio

#include <cstdlib>
#include <iostream>

using namespace std;

int main () {
int i,a,p;

p=1;
for ( i=0; i<10; i++) {
do {
cout<<"Inserisci il numero";
cin>> a; }
while ( a==0 ) ;
p=p*a; }
cout<<"Il prodotto e:"<<p<<"";

system ("PAUSE"); }

"Inserisci 10 numeri diversi da 0 e calcolane il prodotto"

Il programma aveva lo scopo di inserire 10 numeri diversi da 0 e di calcolarne il prodotto. Il problema sorge dal fatto che ciò era il quesito di un compito in classe, e la professoressa mi ha valutato ciò come errore dicendo che dovevo inserire una semplice if ma se faccio in questo modo potrei inserire 10 numeri e tra questi anche un eventuale 0 ed il contatore continua ad incrementare ( il programma come da me strutturato funge perfettamente )
Volevo sapere se secondo voi è corretto così oppure non va bene come struttura. Grazie infinitamente in anticipo, la questione è urgente quindi spero mi rispondiate il prima possibile.

5 Risposte

  • Re: Ciclo Do while dentro for

    Il tuo programma va bene ma anche il prof ha ragione. guarda la modifica
    
    #include <iostream>
    
    using namespace std;
    
    int main () 
    {
    	int i,a,p;
    
    	p=1;
    	for ( i=0; i<10; i++) 
    	{
    		cout<<"Inserisci il numero";
    		cin>> a;
    		if (a == 0)
    		{
    			i--;
    		}
    		else
    		{
    			p=p*a; 
    		}
    	}
    	
    	cout<<"Il prodotto e:"<<p<<"";
    
    	system ("PAUSE"); 
    }
    
  • Re: Ciclo Do while dentro for

    skynet ha scritto:


    il tuo programma va bene ma anche il prof ha ragione. guarda la modifica
    
    #include <iostream>
    
    using namespace std;
    
    int main () 
    {
    	int i,a,p;
    
    	p=1;
    	for ( i=0; i<10; i++) 
    	{
    		cout<<"Inserisci il numero";
    		cin>> a;
    		if (a == 0)
    		{
    			i--;
    		}
    		else
    		{
    			p=p*a; 
    		}
    	}
    	
    	cout<<"Il prodotto e:"<<p<<"";
    
    	system ("PAUSE"); 
    }
    
    Ciao e grazie mille per la risposta. Come hai scritto te va bene il problema è che la prof, nella
    correzione della verifica, non ha inserito alcun decremento della variabile contatore , per
    questo motivo mi pareva molto strano quest'errore. Chiederò chiarimenti, grazie mille della risposta!
  • Re: Ciclo Do while dentro for

    Questo però:
    
    while ( a==0 ) ;
    
    è un errore molto grave.
  • Re: Ciclo Do while dentro for

    shodan ha scritto:


    Questo però:
    
    while ( a==0 ) ;
    
    è un errore molto grave.
    Attenzione: Non è un ciclo infinito, c'è il do sopra.
  • Re: Ciclo Do while dentro for

    Non l'avevo visto. Quando si dice l'importanza di identare il codice.
Devi accedere o registrarti per scrivere nel forum
5 risposte