Ciao a tutti, vorrei sapere se l'esercizio che ho svolto contiene errori logici oppure se è impostato in maniera errata, nel caso non ci siano errori, cosa potrei perfezionare..
Traccia: Progettare un algoritmo che legga una sequenza di valori numerici fino a che la loro somma è minore di 100 e scriva la somma ottenuta e quanti sono i valori letti.
Codice:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
float val=0, somma=0;
int contaval=0;
char risp=' ';
do
{
cout<<"Vuoi inserire valori numerici? S/N: ";
cin>>risp;
if(risp == 'S' || risp == 's')
{
cout<<"Inserisci valore numerico:"<<endl;
cin>>val;
contaval++;
somma=somma+val;
}
else
{
cout<<"La somma e': "<<somma<<endl;
cout<<"I valori inseriti sono: "<<contaval<<endl;
return 0;
}
}while(somma<100);
if(somma>=99)
{
contaval--;
somma=somma-val;
cout<<"La somma e' (ultimo valore non sommato perchè supera il 100): "<<somma<<endl;
cout<<"(valore non contato: "<<val<<")"<<endl;
cout<<"I valori inseriti sono (ultimo valore non contato perchè ha superato il 100): "<<contaval<<endl;
}
}
Grazie a tutti in anticipo.