Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [C] ARRAY : valore massimo,minimo e medio...

    Vorrei realizzare in linguaggio C un programma che richieda sei numeri interi in input e li metta in un Array(di 6 valori appunto [6]), e stampi poi in output il valore +grande,quello +piccolo e il valore medio(per questo dovrei utilizzare una variabile di tipo float).

    Chi mi puo' aiutare???

    Grazie mille
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  2. #2
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    Io programmo in C++ posso darti qualche dritta per realizzarlo:
    Per il valore massimo creati una variabile d'appoggio e poi fai la scansione del vettore e confrona ogni volta il valore della tua variabile d'appoggio con il valore del vettore, se il valore contenuto nella cella del vettore è piu grande, sostituisci, altrimenti prosegui fino alla fine.

    Stessa cosa per fare il valore minimo, solo che devi fare il controllo opposto.

    Per la media fai la somma di tutti gli elementi e dividi per 6.

    UNA OTTIMIZZAZIONE.

    Dal punto di vista della complessità questo si traduce in:;
    O(n) + O(n) + O(n)

    Cioè un tempo lineare per le 3 scansioni del vettore quindi, per l'ultimo caso io ti consiglierei di fare ad esempio, nel controllo del valore massimo la somma di tutti gli elementi così risparmi una scansione. Ma questo viene dopo, intanto pensa a falo nel modo normale.

    Spero di esserti stato d'aiuto
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  3. #3
    sisi grazie mille ..ma sono alle prime armi in C nessuno potrebbe crearmi un codice che realizzi quanto sopra??poi me lo studio gngn :gren:

    thz
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  4. #4
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    Se vuoi te lo scrivo in C++ magari riesci ugualmente a cavarci qualcosa, cioè "l'algoritmo" che utilizzo ok ?
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  5. #5
    Originariamente inviato da Poker1
    Se vuoi te lo scrivo in C++ magari riesci ugualmente a cavarci qualcosa, cioè "l'algoritmo" che utilizzo ok ?
    sisi in c++ è lo stesso...dopo casomai cambio la libreria iostream a stdio.h e relative istruzioni di cin e cout in printf e scanf...

    te ne sarei grato

    ps abbiamo cominciato a scuola oggi i vettori..
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  6. #6
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    codice:
    #include<iostream>
    using namespace std;
    
    void main()
    {
         int N = 6;
         int array[N];
         cout << "Inserisci i 6 valori del vettore " << endl;
         for(int i = 0; i < N; ++i)
         {
                 cin >> array[i];
         }
    
         int max = array[0], min = array[0];
         double tot = array[0];
    
         for(int i = 1; i < N; ++i)
         {
                 if(array[i] > max){ max = array[i]; }
                 if(array[i] < min){ min = array[i]; }
                 tot += array[i];
         }
    
         cout << "L'elemento massimo del vettore e' " << max << endl;
         cout << "L'elemento minimo del vettore e' " << min << endl;
         cout << "La media del vettore e' " << (tot/6) << endl;
    
         char t; cin >> t;
    }
    Dimmi dove non capisci l'esecuzione e ti aiuto
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  7. #7
    Originariamente inviato da Poker1
    codice:
    #include<iostream>
    using namespace std;
    
    void main()
    {
         int N = 6;
         int array[N];
         cout << "Inserisci i 6 valori del vettore " << endl;
         for(int i = 0; i < N; ++i)
         {
                 cin >> array[i];
         }
    
         int max = array[0], min = array[0];
         double tot = array[0];
    
         for(int i = 1; i < N; ++i)
         {
                 if(array[i] > max){ max = array[i]; }
                 if(array[i] < min){ min = array[i]; }
                 tot += array[i];
         }
    
         cout << "L'elemento massimo del vettore e' " << max << endl;
         cout << "L'elemento minimo del vettore e' " << min << endl;
         cout << "La media del vettore e' " << (tot/6) << endl;
    
         char t; cin >> t;
    }
    Dimmi dove non capisci l'esecuzione e ti aiuto
    grazie mille al + presto lo compilero' e ti faro sapere.
    Era propio come lo stavo facendo in "brutta" :gren: io

    Solo delle cose nn mi sono chiare :

    codice:
    using namespace std;
    A cosa serve questa istruzione??La posso cambiare con qualcos'altro che già conosco??

    codice:
    double tot = array[0];
    Stesse domande per la precedente..

    grazie mille ancora
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  8. #8
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    using namespace std;
    alcune istrusioni quali "cin, cout, cerr", sono racchiuse dentro la nuova libreria iostream e non iostream.h all'interno di namespace.
    Quindi anziche scrivere ogni volta:
    codice:
    std::cout << "ciao mondo";
    Si può scrivere direttamente
    codice:
    cout << "ciao mondo";
    E' un pò come la direttiva ASSUME in assembler.
    Cmq, non ti preoccupare di questo.

    double tot = array[0];
    Questo l'ho messo perchè con un singolo for riesco a fargli esegueri la media, il massimo ed il minimo.
    Come vedi fuori pure ho messo max = array[0]; sennò all'interno del ciclo non c'è un valore reale per confrontare tutti gli altri.

    Inizializzare la variabile max e min con 0 (come punto di partenza, e quindi fare il for normale da 0 a N) sarebbe sbagliato nel caso in cui all'interno dell'array ci fossero numeri negativi.

    Se hai altri dubbi posta e cerco di aiutarti
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  9. #9
    nella parte finale hai messo

    codice:
    char t; cin >> t;
    cioè dichiari la var t come carattere e la leggi....ma a questo punto che il programma è terminato a cosa serve??

    Forse a non far chiudere la finestra per permettere la lettura dei risultati?? :master:

    grazie ancora
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  10. #10
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    Hehe..esatto serve a non far sparire la finestra.
    in C devi fare
    system("PAUSE");

    Se compili sotto linux invece non serve dichiarare un qualcosa di "attesa" per leggere i risultati
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

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