04.06.2008 | 22:12:22
immagine
Ing. Emanuele Scapin

C, 3D, proposta di correzione del compito n.1 di laboratorio.
  • Si scriva un programma in C che permetta di inserire N numeri interi in un array.

    Si tenga presente che ogni nuovo numero inserito deve essere maggiore dei precedenti.

    Una volta inseriti tutti gli elementi si contino quanti sono maggiori della media.


  • Proposta di soluzione con controllo, tramite ciclo do-while, del valore inserito, se il valore inserito non è corretto lo si fa reinserire.
    L'array viene definito con il numero N di elementi così come dichiarato dall'utente e non con un valore predefinito e fisso.

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char** argv) {
        // La riga seguente serve solo a chi usa il compilatore Cygwin.
        setvbuf(stdout, 0, _IONBF, 0);
        
        int n;
        printf("quanti valori vuoi inserire ? ");
        scanf("%d", &n);
        printf("\n");
        
        int a[n];
        int i;
        int somma=0;
        for(i=0; i<n; i++){
            if(i==0) {
                printf("\nintrodurre valore %d-esimo ", i);
                scanf("%d", &a[i]);            
            }
            else {
                do {
                    printf("\nintrodurre valore %d-esimo ", i);
                    scanf("%d", &a[i]);
                }while(a[i]<a[i-1]);
            }
            somma = somma + a[i];
        }
        
        float media = somma / n;
        
        int conta=0;
        for(i=0; i<n; i++) {
            if (a[i] > media) conta++;
        }
        
        printf("media=%f, conta=%d \n", media, conta);
    
        return (EXIT_SUCCESS);
    }
            

© Emanuele Scapin 2009-2018

 

Valid HTML 4.01! Valid CSS!