Funzione che calcola la media di un array di reali

di Anonimizzato18073 il
12 risposte
Salve,mi servirebbe una mano sul problema scritto da titolo:ho imbastito anche il codice ma non so se sia giusto dato che dopo l'inserimento dei numeri da usare per la media il programma non va più avanti.Ecco il codice:

//Definire una funzione che calcola la media di un array di numeri reali

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

//Dichiarazione variabili globali

float vet[100];
int numeri;
float num;

//Funzione che calcola la media di un array di reali

void MediaArray(float vet[100])
{
//Dichiarazione variabili locali
float media;
int i;
//Calcolo della media
for(i=0; i<numeri; i++)
scanf("%d\n",&vet);
media=0;
for(i=0;i<numeri;i++)
media= media + vet;
media=media /(float)numeri;
printf("\nLa media é %f",media);


}
//Programma principale
main()
{
printf("Definire una funzione che calcola la media di un array di numeri reali\n\n");
printf("Quanti numeri vuoi inserire?\n");
scanf("%d\n", &numeri);
if(numeri<100)
{
printf("Inserisci un numero\n");
scanf("%f\n", &num);
MediaArray(vet);
}
if(numeri>100)
printf("Errore\n");
}
Grazie a chiunque risponderà.(P.S sono nuovo del forum,quindi se ho sbagliato qualcosa ditemelo)

12 Risposte

  • Ma a che serve la scanf dopo la if<100 ?
  • Salve
    Tanto per iniziare rimuovi la variabile num (a cosa ti servirebbe?) e fai in modo che MediaArray non accetti nessun parametro di funzione perché tanto vet è globale.
    Dalle scanf togli i \n e quando chiedi in input i numeri ricordati che non devono essere interi quindi nella scanf invece di %d metti %f.
    Imposta il valore di ritorno della funzione main come int e alla fine del programma metti un return 0;

    PS: Utilizza i tag code.
  • Adesso?)(Se tolgo la variabile num poi come facci a leggere il valore inserito?)


    [/code][/code]//Definire una funzione che calcola la media di un array di numeri reali

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

    //Dichiarazione variabili globali

    float vet[100];
    int numeri;
    float num;


    //Funzione che calcola la media di un array di reali

    void MediaArray(float vet[100])
    {
    //Dichiarazione variabili locali
    float media;
    int i;
    //Calcolo della media
    for(i=0; i<numeri; i++)
    scanf("%f",&vet);
    media=0;
    for(i=0;i<numeri;i++)
    media=media+vet;
    media=media /(float)numeri;
    printf("\nLa media e'%f",media);


    }
    //Programma principale
    main()
    {
    printf("Definire una funzione che calcola la media di un array di numeri reali\n\n");
    printf("Quanti numeri vuoi inserire?\n");
    scanf("%d", &numeri);
    if(numeri<100)
    {
    printf("Inserisci un numero\n");
    scanf("%f", &num);
    MediaArray(vet);
    }
    if(numeri>100)
    printf("Errore\n");
    }
  • Pitagora ha scritto:


    [/code][/code]
    In mezzo ai tag code devi mettere il codice...

    Pitagora ha scritto:


    Se tolgo la variabile num poi come facci a leggere il valore inserito?
    Ma a che ti serve leggere questo valore?
  • Per leggere il numero inserito
  • E a che ti serve leggere il numero inserito?
  • Serve perche lo sto inserendo in input o no?
  • No, non serve. Prova il programma senza questa variabile e senza quella scanf e puoi vedere da te.
    Inoltre ti avevo dato un paio di consigli che non vedo nel tuo codice.
  • Grazie mille l'errore era quello,scusami se ho dubitato ora il programma va che una meraviglia
  • Ho messo pure il return 0; non dovrebbe mancare altro
  • Sei sicuro che non manchi nulla?...
    Ti fidi di quello che hai fatto?
    E' giusto oppure non è giusto?
    Hai fatto il dubug delle tue idee prima del dubug software?
  • Ma siamo sicuri che il dubug non faccia male?
Devi accedere o registrarti per scrivere nel forum
12 risposte