Salve a tutti
Sono nuovo del forum ed ho iniziato da poco a studiare la programmazione in particolare quella con il linguaggio C.
Vorrei se possibile un aiuto nel risolvere il seguente esercizio: leggere sei numeri da tastiera e visualizzarli in ordine crescente.
Però devo risolverlo facendo uso della sola struttura di controllo if-else.
Ho provato a seguire un ragionamento che mi ha portato alla stesura del codice;ovvero ho confrontato dapprima i primi tre numeri inseriti,ordinandoli in modo crescente ed successivamente ho confrontato i restanti tre numeri.Alla fine confronto tra loro il valore massimo,minimo e intermedio delle rispettive terne e stampo a video ciò che ottengo.
In altre parole mi ordino la prima terna di numeri poi mi metto in ordine la seconda terna di numeri ed alla fine confronto le due terne tra loro.
Riporto il codice in C:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int max,min,inter,max1,min1,inter1,tempo;
printf("\nInserisci i sei numeri:");
scanf("%d%d%d%d%d%d",&max,&min,&inter,&max1,&min1,&inter1);
//ordino la prima terna
if(min>max) {
tempo=min;
min=max;
max=tempo;
}
if(inter>max){
tempo=inter;
inter=max;
max=tempo;
}
if (inter<min)
{
tempo=inter;
inter=min;
min=tempo;
}
//ordino la seconda terna
if(min1>max1){
tempo=min1;
min1=max1;
max1=tempo;
}
if(inter1>max1){
tempo=inter1;
inter1=max1;
max1=tempo;
}
if(inter1<min1){
tempo=inter1;
inter1=min1;
min1=tempo;
}
//ordino le due terne di numeri
if(min>min1){
tempo=min1;
min1=min;
min=tempo;
}
if(max>max1){
tempo=max1;
max1=max;
max=tempo;
}
if(inter>inter1){
tempo=inter1;
inter1=inter;
inter=tempo;
}
//comunico i risultati
printf("\nI sei numeri ordinati sono: %d %d %d %d %d %d",min,inter,max,min1,inter1,max1);
printf("\n\n");
return 0;
}
La compilazione del codice va bene,per quanto riguarda il suo funzionamento invece va bene per numeri piccoli però poi appena inserisco numeri un po più grandi succede il disastro
Attendo il vostro prezioso aiuto e nel farlo vi ringrazio anticipatamente