Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    19

    [C] Calcolo della media tra numeri inseriti da tastiera

    Salve ragazzi!
    Il problema di oggi è questo: il contatore preleva da tastiera dei numeri, fino a quando non si introduce lo zero.
    Deve poi calcolare la media tra i numeri inseriti.
    Bene, devo utilizzare il ciclo while a tale scopo e fin qua ci sono..ma perché il mio codice non mi fa funzionare il programma?
    Qualcuno può aiutarmi?

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int dato, somma;
        float media;
    
        printf("Inserire numero intero:\n");
        scanf("%d", &dato);
    
    
    
        while (dato != 0)
        {
            dato = 0;
            somma = 0;
            printf("Inserire nuovo numero intero:\n");
            scanf("%d", &dato);
            somma = dato + somma;
            dato++;
        }
    
    
        media = somma / dato;
    
        printf("La media dei numeri inseriti e': %f", media);
    
        return 0;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    31
    questo è lo stesso identico programma che avevo fatto un po di tempo fa.. leggilo e vedi subito dove sta l'errore .. comunque fai un po di pasticci nel while!

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void)
    {
        int TOT, N, i;
        float MEDIA;
    
        i=0;
        TOT=0;
    
        printf("inserisci un numero:");
        scanf("%d",&N);
    
        while(N!=0) {
                      i++;
                      TOT=TOT+N;
                      printf("immetti numero:");
                      scanf("%d",&N);
                      }
    
        MEDIA= (float)TOT/i;
    
        printf("il totale è: %d, con %d addendi\n", TOT, i);
        printf("\n");
        printf("la media è:%f\n", MEDIA);
    
        return 0;
    }

  3. #3
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    O_o non puoi utilizzare la variabile dato sia come contatore che come contenitore per i nuovi numeri inseriti, inoltre avendo insertiro:
    codice:
    dato = 0;
    somma = 0;
    all'interno del ciclo questi vengono azzerati ad ogni giro...
    Apparte il fatto che il primo numero inserito tu nemmeno lo consideri...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    19
    Grazie a tutti.
    Si vede che ancora non sono brava a programmare! :P

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    31
    ricordati nelle divisioni di mettere il "(float)" tra parentesi prima della divisione.. a meno che tutte e due le variabili siano dichiarate di tipo float.. perchè se sono di tipo int lui fa la divisione tra interi (es 3:2 = 1 resto 1 e non 3:2=1.5) e quindi poi la media ti viene sbagliata perchè non ti viene con numeri decimali .. spero di essere stato chiaro O.o

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 © 2024 vBulletin Solutions, Inc. All rights reserved.