lucagallo128 ha scritto:
Comunque il programma funziona così perciò cioè non mi vengono altri modi per risolverlo.
- non hai opportunamente inizializzato le variabili numero e prodotto con tutte le conseguenze che ne possono derivare;
- il frammento di codice:
for(contatore=0;numero!=11;contatore)
{
scanf("%d",&numero);
}
è perfettamente inutile, in quanto la condizione sarà sempre falsa vista la posizione in cui si trova quel for;
- la variabile contatore risulta inutilizzata e più in generale utilizzi il costrutto for a sproposito. Per esempio nel seguente frangente:
for(contatore=0;numero==36;contatore)
{
return 0;
}
basterebbe un if.
Io semplicemente farei qualcosa del genere:
#include <stdio.h>
int main()
{
int n;
int prodotto = 1;
int flag = 1;
do
{
printf("n --> ");
scanf("%d", &n);
if(flag)
{
prodotto *= n;
if(n == 11)
{
flag = 0;
}
}
else if(n == 22)
{
flag = 1;
}
}
while(n != 36);
printf("PRODOTTO: %d", prodotto);
return 0;
}
lucagallo128 ha scritto:
Eh ma guarda sulla traccia dell'esercizio il professore ha scritto costrutto funzionale quindi non so nemmeno io bene che fare.
Forse intende iterativo e ricorsivo?! Se ci sono novità fammi sapere.