ESERCIZIO IN C

di il
4 risposte

ESERCIZIO IN C

Il programma va in loop non capisco dove sbaglio

/*Leggere da input un insieme di numeri reali >= 0 e determinare
il valore minimo. Non si conosce in anticipo la quantità di valori da leggere;
la lettura di un valore < 0 indica che l’insieme da leggere è terminato*/

#include <stdio.h>
#include <stdlib.h>

int main() {
float num,somma,cont,min;
somma=0;
cont=0;
min=0;

printf("Inserire un numero (Condizione che sia maggiore o uguale a 0): ");
scanf("%f",&num);
min=num;

while(num>0){
somma=somma+num;
printf("La somma progressiva attuale e': %2.2f\n",somma);
if(num<min){
min=num;
} else printf("Minimo invariato\n");
printf("Inserisci un numero: ");
scanf("f",&num);
cont=cont+1;
}

printf("La somma finale dei numeri interi inseriti e': %2.2f\n",somma);
printf("I numeri inseriti sono: %2.2f\n",cont);
printf("Il minimo e': %2.2f\n",min);

return 0;
}

4 Risposte

  • Re: ESERCIZIO IN C

    Controlla la scanf
  • Re: ESERCIZIO IN C

    MarcoTopone ha scritto:


    Il programma va in loop non capisco dove sbaglio

    /*Leggere da input un insieme di numeri reali >= 0 e determinare
    il valore minimo. Non si conosce in anticipo la quantità di valori da leggere;
    la lettura di un valore < 0 indica che l’insieme da leggere è terminato*/

    #include <stdio.h>
    #include <stdlib.h>

    int main() {
    float num,somma,cont,min;
    somma=0;
    cont=0;
    min=0;

    printf("Inserire un numero (Condizione che sia maggiore o uguale a 0): ");
    scanf("%f",&num);
    min=num;

    while(num>0){
    somma=somma+num;
    printf("La somma progressiva attuale e': %2.2f\n",somma);
    if(num<min){
    min=num;
    } else printf("Minimo invariato\n");
    printf("Inserisci un numero: ");
    scanf("f",&num);
    cont=cont+1;
    }

    printf("La somma finale dei numeri interi inseriti e': %2.2f\n",somma);
    printf("I numeri inseriti sono: %2.2f\n",cont);
    printf("Il minimo e': %2.2f\n",min);

    return 0;
    }
    Piccola curiosità: se il problema ti chiede solo di determinare il minimo, perchè fai anche la somma finale e il conteggio dei numeri inseriti?
  • Re: ESERCIZIO IN C

    Ciao!
    Ho provato con la struttura do-while e sembra che adesso funzioni.
    
    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
    	float num,somma,cont,min;
    	somma=0;
    	cont=0;
    	min=0;
    	do{
    		printf("Inserire un numero (Condizione che sia maggiore o uguale a 0): ");
    		scanf("%f",&num);
    		min=num;
    		cont++;
    		somma=somma+num;
    		printf("La somma progressiva attuale e': %2.2f\n",somma);
    	if(num<min){
    		min=num;
    	} 
    	}while(num>=0);
    
    printf("La somma finale dei numeri interi inseriti e': %2.2f\n",somma);
    printf("I numeri inseriti sono: %2.2f\n",cont);
    printf("Il minimo e': %2.2f\n",min);
    
    return 0;
    }
    
    Ora finisci tu!
  • Re: ESERCIZIO IN C

    Grazie mille a tutti
Devi accedere o registrarti per scrivere nel forum
4 risposte