Anonimo
Anonimo ha chiesto in Computer e InternetProgrammazione e Design · 8 mesi fa

Mi aiutate con  un programma  c++?

Ragazzi per favore mi dite (o anche con le parole) come si fa a trovare il minimo di N numeri intero

10 pt assicurati

8 risposte

Classificazione
  • mario
    Lv 5
    8 mesi fa

    Prendi per es in input 4 numeri(1,2,3,4,5) li memorizzi in un array, li verifichi con un ciclo annidato, per es il ciclo annidato verifica che 'n' è piu piccolo di 1,2,3,4 e 5, se è cosi break, assegna il numero a una variabile e hai finito, altrimenti verifica 2,3 e cosi via

  • 8 mesi fa

    Per evitare di confonderti troppo, ti faccio un esempio molto semplificato, che non ha né input né gestione dei vari casi né decorazioni, né messaggi, facciamo che abbiamo solo 5 numeri:

    #include <stdio.h>

    #include <iostream>

    using namespace std;

    int main()

    {

        int numeri[5] = {5, 8, 2, 3, 11}; //prova a cambiare i cinque numeri

        int minimo = numeri[0]; //prendi il primo numero (in posizione 0)

        for (int i=1; i<=4; i++) //prendi uno dopo l'altro i num. successivi (in posiz. da 1 a 4)

        {

            if (numeri[i] < minimo) //se ne trovi uno più piccolo di quello che avevi trovato...

            {

                minimo = numeri[i]; //...allora lo tieni

            }

        }

        cout<<minimo; //infine fai vedere il più piccolo che hai trovato

        return 0;

    }

    prova a copiare e incollare quel pezzo su questo sito, selezioni linguaggio C++ nel menu in alto a destra, e poi premi il bottone verde >Run, vedrai che in basso nell'area nera ti uscirà scritto il risultato "2":

    https://www.onlinegdb.com

  • Anonimo
    8 mesi fa

    Non studio C++ da 15 anni, quindi del linguaggio ricordo poco o nulla. Ciò che posso suggerirti io è di creare un array di dimensione N e poi di ordinarlo in ordine crescente usando l'algoritmo Bubble Sort. Il primo elemento dell'array sarà l'elemento più piccolo, quindi il minimo degli N numeri interi dati. 

  • 6 giorni fa

    In C++11 esistono algoritmi standard per farlo. Cfr. std::min. Devi un attimo capire che revisione del C++, perché hanno cambiato un po' di cose dal C++1, cfr. p.es. https://en.cppreference.com/w/cpp/algorithm/min

    Se non puoi usare cose prefatte, l'algoritmo è semplice e te lo illustro sotto; sia N > 0.

    1. minimo = a[0]

    2. i = 1

    3. se i >= N, fine

    4. se a[i] < minimo allora minimo = a[i]

    5. incrementa i di 1

    6. ripeti dal 3

    Il minimo sarà nella variabile minimo.

  • Che ne pensi delle risposte? Puoi accedere per votare la risposta.
  • 8 mesi fa

    Ciao, ho usato un ciclo while...credo sia il più semplice.

    #include<iostream>

    using namespace std;

    int main(){

     int nnumeri,n1,contatore=1,minore;

    cout<<"Inserisci il numero di numeri da confrontare: ";

    cin>>nnumeri;

    cout<<"Inserisci numero: ";

     cin>>n1;

     minore=n1;

    while(contatore<nnumeri){

     cout<<"Inserisci numero: ";

     cin>>n1;

     contatore=contatore+1;

      if(n1<minore)

       minore=n1;

    }

     cout<<"Il numero piu' piccolo e' "<<minore;

    return 0;

    }

  • 8 mesi fa

    #include <iostream>

    using namespace std;

    int main(){

         int numeri[10];

         int numMinimo;

         int numElem;

         cout<<"\nQuanti numeri desideri inserire?";

         cin>>numElem;

         for(int i=0;i<numElem;i++){

             cout<<"Inserisci il numero " <<i+1<<": ";

             cin>>numeri[i];

        }

       

        numMinimo=numeri[0];

        for(int i=0;i<numElem;i++){

            if(numeri[i]<numMinimo){numMinimo=numeri[i];}

        }

       

        cout<<numMinimo;

        return 0;

    }

  • Anonimo
    8 mesi fa

    non programmo in C++ ma in C, ma ti posso dire piu o meno cosa devi fare, tu devi solo tradurre. Prendi per es in input 4 numeri(1,2,3,4,5) li memorizzi in un array, li verifichi con un ciclo annidato, per es il ciclo annidato verifica che 'n' è piu piccolo di 1,2,3,4 e 5, se è cosi break, assegna il numero a una variabile e hai finito, altrimenti verifica 2,3 e cosi via.

    10 punti? :)

  • 8 mesi fa

    Il C++ l'ho sempre utilizzato per creare piccoli programmini e pertanto non lo conosco molto bene. Per evitare di commettere errori di sintassi, quindi, lo scriverò in Java: linguaggio con cui ho molta più confidenza. Tanto la logica è quella e potrai tradurlo in C++.

    public class Minimo {

        public static void main (String [] args){

            

            int minimo= Integer.MAX_VALUE;

            int [] numeri = {1,4,6,39,-4,5,3,1,3,8,0}

            for (int i = 0; i < 10; i ++){

                if ( numeri[I] < minimo)

                    minimo = numeri [i];

            System.out.println(minimo);

        }

    }

    Se non hai ancora studiato la programmazione orientata agli oggetti, allora lascia stare il "public class Minimo", ma sappi che in Java ci deve essere.

    In pratica ho inizializzato una variabile minimo di tipo intero e le ho assegnato il valore massimo che un intero possa contenere attraverso Integer.MAX_VALUE, ma avrei potuto scrivere il numero tranquillamente.

    Perché serve un valore così alto? Per non escludere nessun numero. Se il minimo tra i numeri sarà altissimo, occorre partire da un numero alto.

    Dopo ciò per comodità ho creato un array di 10 elementi e lo ho chiamato numeri, ma sappi che si può fare anche senza.

    Poi, con un ciclo ho analizzato tutti i numeri dell' array e ogni volta che incontravo nell' array un numero minore della variabile minimo portavo minimo al numero che avevo analizzato.

    Fatto ciò minimo ha sicuramente il valore uguale al minor numero dell' array, perché nel ciclo la variabile minimo assumeva il valore del numero analizzato solo se questo è minore.

    Fatto ciò stampo minimo

Altre domande? Fai una domanda e ottieni le risposte che cerchi.