Andrea Quaglia ha scritto:
Non puoi annullare l'ultimo ciclo, ma puoi evitare che faccia l'assegnazione: basta rimettere l'if come era prima:if (x < min && x >= 0.0)
min = x;
Comunque il test sul contatore non serve a niente, ti complichi la vita per niente.
Grazie ora ho imparato che non è possibile annullare l'ultimo ciclo:
Ora passo ad un altro esercizio. Si tratta del calcolo delle potenze.
int main(int argc, char** argv) {
int i;
double a, n, ris;
cout<<"Inserire la base: \n";
cin>>a;
cout<<"Inserire l'esponente: \n";
cin>>n;
if(a==0 && n==0){
cout<<"Non ha significato. \n";
}
if(n==0){
ris=1;
}
if(n>0){
ris=a;
for(i=1; i<n; i++){
ris=ris*a;
}
}
if(n<0){
ris=a;
for(i=1; i<n; i++){
ris=1/(ris*a);
}
}
cout<<"Il risultato e': "<<ris<<endl;
return 0;
}
Il programma funziona bene fino a n>0. Quando pongo n<0, non mi restitiusce il giusto risultato, e non capisco il perchè eppure la formula è quela giusta. es: 2^-2 = 1/2^2.