Dati tre numeri da tastiera: a,b,c stamparli in ordine crescente

Stato
Discussione chiusa ad ulteriori risposte.

Lupen03

Nuovo Utente
141
10
Hardware Utente
Periferiche
usb, mouse,tastiera
Internet
duckduckgo
Sistema Operativo
windows 7 , debian
Salve a tutti , mi sono imbattutto in questo esercizio :
Dati tre numeri da tastiera: a,b,c stamparli in ordine crescente


Non ho capito bene il concetto logico , me lo potete spiegare?
Cioè io per contare i numeri vedo qual'è il minore e poi li metto in ordine .,.. Ma non so nella codifica da dove partire

Grazie
 

Themickelson

Nuovo Utente
Salve a tutti , mi sono imbattutto in questo esercizio :
Dati tre numeri da tastiera: a,b,c stamparli in ordine crescente


Non ho capito bene il concetto logico , me lo potete spiegare?
Cioè io per contare i numeri vedo qual'è il minore e poi li metto in ordine .,.. Ma non so nella codifica da dove partire

Grazie
Parti dal fatto che hai:
Int a, b, c;

Parti dal fatto che già sai gli operatori logici.
Combina le due cose ed il gioco è fatto.
 

Themickelson

Nuovo Utente
Grazie , ma le variabili le sapevo già . Io voglio capire il concetto logico .
Ciò che hai scritto non serve a nulla
Non è che ciò che ho scritto non ha senso ma è che ciò che chiedi non ha nulla di astratto. Non stai chiedendo come lavorare con multilevel pointers ma come stampare 3 numeri in ordine crescente.
Puoi farlo come ti pare, coi vector o con i puntatori o con 3 variabili, tutto sta a te.
E ti dico anche che se non sai svolgere questi esercizio qua dovresti iniziare a leggere libro di c++ o cambiare e trovare qualcosa di più semplice.
 

Lupen03

Nuovo Utente
141
10
Hardware Utente
Periferiche
usb, mouse,tastiera
Internet
duckduckgo
Sistema Operativo
windows 7 , debian
Non è che ciò che ho scritto non ha senso ma è che ciò che chiedi non ha nulla di astratto. Non stai chiedendo come lavorare con multilevel pointers ma come stampare 3 numeri in ordine crescente.
Puoi farlo come ti pare, coi vector o con i puntatori o con 3 variabili, tutto sta a te.
E ti dico anche che se non sai svolgere questi esercizio qua dovresti iniziare a leggere libro di c++ o cambiare e trovare qualcosa di più semplice.
Se stai qua a farmi la predica stai perdendo solo tempo , grazie per l'aiuto ma ciò che dici non mi aiuta affatto . grazie eh
 

_Achille

Utente Èlite
2,995
685
Hardware Utente
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
Hard Disk
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
Scheda Video
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
Alimentatore
RM550X
Case
NZXT S340
Periferiche
Cooler Master XT; Razer Abyssus
Sistema Operativo
Windows 10 Pro
Il concetto logico è ordinare i tre numeri. Puoi usare un set, una priority_queue, un vettore e trovare il minimo a ogni iterazione...
Se invece hai tre variabili, chiamiamole x, y e z; ciò si ottiene con una concatenazione di vari costrutti if.
Codice:
SE x > y:
    SE y > z:
        stampa(x, y, z)
    ALTRIMENTI:
        stampa(x, z, y)
ALTRIMENTI SE y > z:
    ecc...
 

Lupen03

Nuovo Utente
141
10
Hardware Utente
Periferiche
usb, mouse,tastiera
Internet
duckduckgo
Sistema Operativo
windows 7 , debian
Dopo ecc cosa verrebbe ? cioè è proprio il concetto che non capisco
Se n1>N2
se n2>n3
allora n1 n2 n3

se n2>n3
se n1>n3
allora n1 n2 n3

se n3<n1
se n2<n1
allora n1 n2 n3

giusto ? allora sarebbe stampa
Il ragionamento è giusto?
 
Ultima modifica:

_Achille

Utente Èlite
2,995
685
Hardware Utente
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
Hard Disk
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
Scheda Video
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
Alimentatore
RM550X
Case
NZXT S340
Periferiche
Cooler Master XT; Razer Abyssus
Sistema Operativo
Windows 10 Pro
Io avevo pensato a questa struttura , va bene?
Grazie per la risposta
C++:
    if(N1<N2)
       if(N1<N3)
         if(N2<N3)
            N1 N2 N3;
         else
           N1 N3 N2;
    else
      if(N1<N3)
         N2 N1 N3;
      else
       if(N2<N3)
         N2 N3 N1;
      else
        N3 N2 N1;
Sì scusa io stavo ordinando in modo decrescente :cav:
Ti manca solo la codifica di N3 N1 N2
 

Andretti60

Utente Èlite
3,494
2,344
Hardware Utente
Innanzi tutto come da regolamento devi PRIMA di tutto pubblicare quello che hai scritto. Non importa se non completo o sbagliato.
Inizia dalla parte piu' semplice, leggere tre numeri da tastiera.
Segui con il stamparli su video, non importa in che ordine.
Solo a quel punto ti possiamo aiutare.
Leggi il regolamento per favore, non e' per farti la predica (tutti noi abbiamo iniziato con lo studiare e imparare quindi sappiamo cosa voglia dire, ci siamo passati)

Nel tuo caso devi trovare prima di tutto il minore dei tre, e stamparlo.
Inizia con quello.
 

Lupen03

Nuovo Utente
141
10
Hardware Utente
Periferiche
usb, mouse,tastiera
Internet
duckduckgo
Sistema Operativo
windows 7 , debian
Innanzi tutto come da regolamento devi PRIMA di tutto pubblicare quello che hai scritto. Non importa se non completo o sbagliato.
Inizia dalla parte piu' semplice, leggere tre numeri da tastiera.
Segui con il stamparli su video, non importa in che ordine.
Solo a quel punto ti possiamo aiutare.
Leggi il regolamento per favore, non e' per farti la predica (tutti noi abbiamo iniziato con lo studiare e imparare quindi sappiamo cosa voglia dire, ci siamo passati)

Nel tuo caso devi trovare prima di tutto il minore dei tre, e stamparlo.
Inizia con quello.
Fin'ora ho fatto questo codice :
C++:
//librerie
#include<iostream>
using namespace std;
//Dati 3 numeri , ordinarli in ordine crescente
int main(){
//dichiarazione variabili   
    int N1,N2,N3;
//Input numeri da tastiera
    cout<<"inserisci il primo numero : ";
    cin>>N1;
    cout<<"inserisci il primo numero : ";
    cin>>N1;
    cout<<"inserisci il primo numero : ";
    cin>>N1;
 

Andretti60

Utente Èlite
3,494
2,344
Hardware Utente
Beh, visto che il testo chiedi "tre numeri a,b,c" perche' mai hai cambiato nome alle variabili?
E poi ne leggi e stampi solo uno (N1).

Dai, leggili tutti e tre, poi stampali con una istruzione unica.
Poi trova il minore e stampalo.
Ti sto aiutando a piccoli passi qui.
 

Lupen03

Nuovo Utente
141
10
Hardware Utente
Periferiche
usb, mouse,tastiera
Internet
duckduckgo
Sistema Operativo
windows 7 , debian
Beh, visto che il testo chiedi "tre numeri a,b,c" perche' mai hai cambiato nome alle variabili?
E poi ne leggi e stampi solo uno (N1).

Dai, leggili tutti e tre, poi stampali con una istruzione unica.
Poi trova il minore e stampalo.
Ti sto aiutando a piccoli passi qui.
ho preso in considerazione 3 5 6

è ho atto questo ragionamento:
se 3<5
se 6>3
stampa 3 5 6

se 6<5
se 5>3
stampa 3 5 6

se 5<6
se 6>3
stampa 3 5 6


è giusto?
 

Andretti60

Utente Èlite
3,494
2,344
Hardware Utente
No.
Per esempio, considera la terna 3,7,6
Passerebbe il tuo primo test
3<7
6>3
ma la stampa sarebbe sbagliata.

Quando devi trovare il numero maggiore o minore di una serie, devi usare sempre o solo un operatore (maggiore o minore) mai mischiarli. Non lo avete studiato a scuola?
 

Lupen03

Nuovo Utente
141
10
Hardware Utente
Periferiche
usb, mouse,tastiera
Internet
duckduckgo
Sistema Operativo
windows 7 , debian
No.
Per esempio, considera la terna 3,7,6
Passerebbe il tuo primo test
36>3
ma la stampa sarebbe sbagliata.

Quando devi trovare il numero maggiore o minore di una serie, devi usare sempre o solo un operatore (maggiore o minore) mai mischiarli. Non lo avete studiato a scuola?
Si , infatti proprio ieri abbiamo fatto un esercizio : dati 3 numeri calcolare il maggiore
Comunque ora su carta mi esercito a fare tutti i casi possibili , vedo cosa riesco a fare.. grazie
Post automaticamente unito:

Però il concetto delle logica di questo esercizio lo devo ancora capire

usando i numeri 3 7 6
7>3
7>6
6<7
3<7

avendo fatto ciò devo trovare qualcosa che lega queste affermazioni
 
Ultima modifica:
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando