Media Aritmetica

Questo programma in c, vi consentirà di inserire tutti i numeri che volete finchè non verrà premuto 0 e, di farne poi, la media aritmetica.

La versione 1 è la più semplice e intuibile, contiene infatti il ciclo Do – While. La versione 2, presenta già dei controlli più complicati, come per l’inserimento di un carattere invece che di un numero.

N.B: La versione 2 risolve il problema del loop infinito quando si immette un carattere al posto di un numero! Prestare molta attenzione!

v 1.0

#include <stdio.h>

int main(void) {

    float n, espr, media;

    int i;

    printf("Benvenuto nel calcolo della media aritmetica! \n");
    printf("Il sistema ti chiedera' sempre un nuovo numero \n");
    printf("finche' non verra' inserito il valore: 0. \n\n");

    espr = 0;

    i = 0;

    do {

        printf("Inserisci il valore: ");
        scanf("%f", &n);

        espr = espr + n;

        i = i++;

    } while (n != 0); // fine do

        media = espr / (i - 1);

        i = i - 1;

        printf("\n");

        printf("La media artimetica tra i %i valori e': %.2f", i, media);

        printf("\n\n");

    return 0;

}

v 2.0

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

int main(int argc, char *argv[]) {

    float n, espr, media, b;

    int a;  //lo uso come controllo se l'imput è andato a buon fine. se è 0 allora errore (cioè ho messo un tipo di input diverso da quello che richiede quel scanf) se è 1 allora va tutto bene
    int result, i;

    i = 0;

    espr = 0;

    printf("Benvenuto nel calcolo della media aritmetica! \n");
    printf("Il sistema ti chiedera' sempre un nuovo numero \n");
    printf("finche' non verra' inserito il valore: 0. \n\n");

    printf("Inserisci il valore: ");
    a = scanf("%f", &n); //chiedo all'utente un numero, lo inserisco in n, in più mi salvo in a se l'input è andato a buon fine

    while(n != 0) {   //finche l'utente non inserisce 0

        while (a != 1) {  //l'input era andato a buon fine?? controllo, se non era andato a buon fine: richiedo

            fflush(stdin);   //cancello gli eventuali tasti premuti nella tastiera  (IMPORTANTE: E' QUELLO CHE MI EVITA IL LOOP INFINITO)
            printf("Errore! Devi inserire un valore valido!: ");
            a = scanf("%f", &n);  //richiedo l'input e mi salvo se è andato a buon fine

        }

        espr += n;  //  N.B.   scrivere += significa come esp = esp + n  è una forma più compatta. posso usare anche gli altri operatori
        i++;  //N.B. scrivere i++ equivale a i= i+1   se fosse i= i -1 allora scrivo i--
        printf("\nInserisci il valore: "); //chiedo un'altro valore
        a = scanf("%f", &n);

    } // fine ciclo while

    media = espr / (i);

    printf("\nLa media artimetica tra i %i valori e': %.2f", i, media);

    printf("\n\n");

    system("PAUSE");

    printf("\n\ncopyright - caprioli.info/progression/\n");
 return 0;

}

v 3.0 universitaria (in array – vettori)

#include <stdio.h>

int main(void) {
  int voti[31] = { 0 };
  int voto;
  int pos;
  int num, den;

  do {
    printf("voto: ");
    scanf("%i", &voto);

    if (voto >= 0 && voto <= 30)
      voti[voto]++;
  }
  while (voto >= 0);

  for (pos = 0; pos < 31; pos++)
    printf("%i ", voti[pos]);

  printf("\n");

  for (voto = 0; voto < 31; voto++)
    if (voti[voto] > 0)
      printf("%i student%c ha%s preso %i %s\n",
	     voti[voto],
	     voti[voto] == 1 ? 'e' : 'i',
	     voti[voto] == 1 ? "" : "nno",
	     voto,
	     voto >= 18 ? "" : "(insufficiente)");

  // calcoliamo la media dei voti
  num = den = 0;
  for (voto = 0; voto < 31; voto++) {
    num += voti[voto] * voto;
    den += voti[voto];
  }

  printf("La media dei voti e': %g\n",
	 ((double) num) / den);

  return 0;
}

Per ogni dubbio, non esitate a commentare!!



  1. No trackbacks yet.

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Page not found - Sweet Captcha
Error 404

It look like the page you're looking for doesn't exist, sorry

Search stories by typing keyword and hit enter to begin searching.