Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446

    [C] Richiesta codice per una semplice applicazione

    Salve a tutti!

    Devo fare a “scopo didattico” un applicazione in C. il testo e il seguente:

    “ Realizzare un programma che richieda l’inserimento di 5 numeri interi, li visualizzi in ordine di inserimento, ne calcoli e visualizzi: il minimo, il massimo e la media

    Il programma deve poi chiedere l’inserimento di un certo numero n e contare quanti dei numeri inseriti sono maggiori di n, visualizzando a schermo il risultato”

    Chi e cosi gentile a crearmi questo codice con i relativi commenti ?

    Vi ringrazio anticipamente

  2. #2
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    up


  3. #3
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    prova questo...
    dovrebbe andare, specialmente sotto linux con il gcc...
    semmai riposta
    ciao
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <limits.h>
    
    #define NUMBER 5
    
    float get_media(int *, int);
    int get_massimo(int *, int);
    int get_minimo(int *, int);
    int nelem_major(int *,int, int);
    
    int main()
    {
        int i;				//intero di appoggio
        int vettore[NUMBER];		//vettore dei numeri
        int massimo, minimo;		//senza spiegazioni... :))))    
        float media;
        int n, nmag;
    
        /*richiesta inserimento numeri*/
        for(i = 0;i<NUMBER;i++){
    	printf("Inserisci il %d^ numero\n", i+1);
    	scanf("%d", &vettore[i]);    	
         }		
         /*visualizzazione numeri*/
         for(i =0;i<NUMBER;i++){
    	printf("%d\n", vettore[i]);    	
         }	     
         /*calcolo media, massimo e minimo*/
         media = get_media(vettore, NUMBER);
         massimo = get_massimo(vettore, NUMBER);
         minimo = get_minimo(vettore, NUMBER);
         printf("MEDIA: %f\nMASSIMO:%d\nMINIMO:%d\n", media, massimo, minimo);
         /*numeri maggiori di n*/
         printf("Dammi il limite: \n");
         scanf("%d", &n);
         /*la funzione nelem_major() mi ritornera correttamente il numero di elementi maggiori
         a n*/
         nmag =  nelem_major(vettore, NUMBER, n);
         printf("Ci sono %d elementi maggiori di %d",nmag, n);
         
        return 0;	
        
    }
    float get_media(int *v, int dim){
        int somma=0;
        int i;
        
        for(i = 0; i<dim;i++){
        	somma += v[i];
        }
        return somma/dim;
    }
    int get_massimo(int *v, int dim){
        int max = INT_MIN;		/*inizialmente dichiaro max come il minimo possibile
        				rispetto all'architettura usata, utilizzando la costante
        				INT_MIN definita in limits.h*/
        int i;
        
        for(i =0; i<dim;i++){
        	if(v[i]>max)	//c'è poco da spiegare...
        	   max = v[i];
        }
        //alla fine del ciclo in max ci sara il massimo    
        return max;
    }
    int get_minimo(int *v, int dim){
        int min = INT_MAX;		/*inizialmente dichiaro min come il massimo possibile
        				rispetto all'architettura usata, utilizzando la costante
        				INT_MAX definita in limits.h*/
        int i;
        
        for(i =0; i<dim;i++){
        	if(v[i]<min)	//c'è poco da spiegare...
        	   min = v[i];
        }
        //alla fine del ciclo in min ci sara il massimo    
        return min;
    }
    int nelem_major(int *v,int dim, int n){
        	int numero = 0;
        	int i;   	
    
    	for(i=0;i<dim;i++){
        		if(v[i]>n)
        		  numero++;
        	}	
    	return numero;
    }
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  4. #4
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    guarda che all'esame poi nn c'è nessuno che te li faccia
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  5. #5
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061

    se sapevo che era per un'esame non postavo...

    cmq penso che, sempre impegnandosi a capire e sforzandosi di provare davanti al gcc, il codice possa aiutare molto + di un libro...
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  6. #6
    Ciau,

    ecco una variante a byaur.

    codice:
    //Autore: Gnix
    //Data: 29.04.05 23:42
    //Compilato con: Dev-C++ 4.9.9.1
    
    #include <iostream>
    #define LEN 5
    using namespace std;
    
    int main()
    {
        //Dichiarazione variabili
        int Val_Num = 0;     //numero n
        int Val_Mag = 0;     //numeri maggiori di n
        int Val_Max = 0;     //massimo
        int Val_Min = 0;     //minimo
        double Val_Med = 0;  //media
        int Arr_Int[LEN];    //5 numeri interi
        
        //Inizializzare ogni elemento dell'array Arr_Int
        for(int i=0 ; i < LEN ; i++)
        {
            cout << "Scrivere il valore dell'elemento " << (i+1) << ": ";
            cin >> Arr_Int[i];
        }
        
        //Eguaglia valore massimo e minimo al primo valore dell'array e inizia ciclo
        Val_Min = Arr_Int[0];
        Val_Max = Arr_Int[0];
    
        for(int j=0 ; j < LEN ; j++)
        {
            //Se il valore intero contenuto nell'array Arr_Int alla posizione j è
            //minore del valore di Val_Min allora a Val_Min viene asseganto il valore
            //contenuto nell'array Arr_Int alla posizione j
            if(Arr_Int[j]< Val_Min) Val_Min = Arr_Int[j];
    
            //Se il valore intero contenuto nell'array Arr_Int alla posizione j è
            //maggiore del valore di Val_Max allora a Val_Max viene asseganto il valore
            //contenuto nell'array Arr_Int alla posizione j
            if(Arr_Int[j]> Val_Max) Val_Max = Arr_Int[j];
        }
        
        //Calcola media, aggiungendo ad ogni ciclo il valore contenuto nell'array 
        //Arr_Int alla posizione k nella variabile Val_Med. Quindi assegna a Val_Med
        //la media calcolata
        for(int k=0 ; k < LEN ; k++) Val_Med += Arr_Int[k];
        Val_Med = Val_Med/LEN;
        
        //Stampa risultati
        cout << "Valore massimo: " << Val_Max << endl;
        cout << "Valore minimo : " << Val_Min << endl;
        cout << "Valore media  : " << Val_Med << endl;
        
        //Inserisci numero n
        cout << "Inserisci numero n: ";
        cin >> Val_Num;
        
        //Controlla se valore contenuto nell'array Arr_Int alla posizione m maggiore
        //di Val_Num, se maggiore incrementa Val_Mag
        for(int m=0 ; m < LEN ; m++) if(Arr_Int[m]>Val_Num) Val_Mag++; 
        
        //Stampa risultati
        cout << "Numeri inseriti maggiori di " << Val_Num << ": " << Val_Mag << endl;
        
        //Ritorna intero
        return 0;
    }
    Buon esame
    Gnix

    p.s. Se togli i commenti il codice è davvero poco
    http://www.ptrace.net

  7. #7
    ma non avresti potuto farlo da solo? è molto facile come programma...

  8. #8
    Moderatore di Annunci siti web L'avatar di Cesar
    Registrato dal
    Dec 2001
    Messaggi
    3,446
    grazie a tutti !!


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.