Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    25

    ho un problema con la funzione Media() in C

    codice:
    /*
     * PROGRAMMA CHE DATI IN INPUT DUE VALORI O PIU' VALORI STAMPA LA LORO MEDIA
     * @author Lonzi Mattia
     * @version 0.1 2012-12-18
     */
    #include <stdio.h>
    
    
    float Media(float numero, float somma, float media) {
    	int i = -1;
    	
    	while(numero != 0) {
    		somma += numero;
    		i++;
    	}
    	media = somma / i;
    	return media;
    
    }
    
    void main() {
    	float numero;
    	float somma;
    	float media;
    	
    	printf("QUESTO PROGRAMMA PERMETTE DI FARE LA MEDIA DEI NUMERI INSERITI\n");
    	printf("INSERIRE 0 PER TERMINARE\n\n");
    	while(numero != 0) {
    		printf("INSERIRE NUEMRO ");
    		scanf("%f", &numero);
    	}
    	printf("la media dei numeri inseriti è %f\n", Media(numero, somma, media));
    }
    ERRORE :

    codice:
    {I° ESEMPIO}
    
    mattia@mattia-MS-7529:~/Scrivania$ ./LonziMattia_Media QUESTO PROGRAMMA PERMETTE DI FARE LA MEDIA DEI NUMERI INSERITI
    INSERIRE 0 PER TERMINARE
    
    INSERIRE NUEMRO 10
    INSERIRE NUEMRO 20
    INSERIRE NUEMRO 30
    INSERIRE NUEMRO 0
    la media dei numeri inseriti è -0.000000
    mattia@mattia-MS-7529:~/Scrivania$ 
    
    {II° ESEMPIO}
    
    mattia@mattia-MS-7529:~/Scrivania$ ./LonziMattia_Media QUESTO PROGRAMMA PERMETTE DI FARE LA MEDIA DEI NUMERI INSERITI
    INSERIRE 0 PER TERMINARE
    
    INSERIRE NUEMRO 5.5
    INSERIRE NUEMRO 10.5
    INSERIRE NUEMRO 6
    INSERIRE NUEMRO 0
    la media dei numeri inseriti è -0.000000
    mattia@mattia-MS-7529:~/Scrivania$ ^C
    mattia@mattia-MS-7529:~/Scrivania$
    Perchè mi da che la media è -0,000000 ?? non ha senso ...

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Se controlli la logica che hai adottato ti accorgi che non ha senso ...

    Fai l'input dei numeri nel main nella stessa variabile (cancellando il valore delle precedenti) e passi solamente l'ultima (che è 0) alla funzione ...

    Forse volevi utilizzare i vettori per i numeri ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Stai sovrascrivendo i dati d'ingrasso sempre nella stessa variabile, "numero"; dal momento che l'ultimo numero inserito è sempre 0, esso verrà passato alla funzione media, la dove verrà diviso per -1. Ecco perché ti restituisce sempre -0.000...
    Per realizzare una funzione media, dovresti usare un vettore di memoria oppure, che so, una variabile statica!

    Comunque hai già aperto una discussione sia sulla media che sul fattoriale: http://forum.html.it/forum/showthrea...readid=1531662
    Dante

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.