Prodotto di tutti i numeri precedentemente inseriti dall'utente dopo calcolo somma input sequenziale

di Pingo il
2 risposte
Salve ho da pochissimo iniziato a programmare per studio e sto avendo alcune difficoltà che derivano direttamente dalla mia inesperienza e ignoranza su argomenti, il programma potrebbe essere molto basico, inutile o poco ottimizzato.
Il programma chiede che venga inserita un numero che rappresenterà una soglia e che successivamente vengano inseriti in modo sequenziale dei numeri la cui somma sia maggiore del numero precedentemente inserito e che poi ne venga fatto il prodotto di tutti i numeri inseriti, compresa la soglia da superare.
Mentre scrivevo questo post di aiuto sul come riuscire a fare il prodotto di tutti i numeri inseriti, ho avuto un idea e sono effettivamente riuscito a risolvere il problema, però vista la mia inesperienza mi sembrava più giusto chiedere comunque aiuto a voi per capire se esistono modi molto più semplici ed intelligenti per fare il programma.

Questo è quello che sono riuscire a creare, sono sicuro ci sia qualche errore:

int main() {

float numero_limite, num = 0, somma = 0, prodotto = 1;

printf("inserire un numero soglia: ");
scanf_s("%f", &numero_limite);

while (somma < numero_limite) {
printf("inrerire un numero: ");
scanf_s("%f", &num);
somma = somma + num;
prodotto = prodotto * num;
if (somma >= numero_limite) {
prodotto = prodotto * numero_limite;
printf("il prodotto tra tutti i numeri inseriti e' %f\n", prodotto);
}
}
}

2 Risposte

  • A fine programma ho notato, usando la calcolatrice, che i risultati per numeri molto grandi sono incongruenti. Le cifre più grandi (miliardo e oltre) sono esatte mentre quelle più piccole vicino al migliaio/milione sono completamente sballate. C'è qualcosa che ignoro e/o sbaglio?
  • Per maggiore precisione usa i double

    P.S. Quando posti del codice usa i tag CODE
Devi accedere o registrarti per scrivere nel forum
2 risposte