qualcuno potrebbe aiutarmi con un esercizio di informatica?

Pubblicità

stranger190608

Nuovo Utente
Messaggi
3
Reazioni
0
Punteggio
0
non capisco come fare un es di informtica che mi hanno dato

questo è quello che ho fatto, ma quando scrivo i numeri mi dice solamente l'ordine delle lettere e non mi mette in ordine i numeri, non capisco come fare
//programma che scrive i numeri in ordine crescente

//inclusione librerie
#include <stdio.h>
#include <stdlib.h>

int main()
{
float a, b, c;

printf("inserisci un numero: ");
scanf("%d", &a);
printf("inserisci un altro numero: ");
scanf("%d", &b);
printf("inserisci ancora un altro numero: ");
scanf("%d", &c);


if(a < b)
{
//ramo vero
if(a < c)
{
//ramo vero
if(b < c)
{
//ramo vero
printf("\n i numeri sono in questo ordine %d %d %d \n", a, b, c);
}
else
{
//ramo falso
printf("\n i numeri sono in questo ordine %d %d %d\n", a, c, b);
}
}
else
{
//ramo falso
printf("\n i numeri sono in questo ordine %d %d %d \n", c, a, b);
}
}
else
{
//ramo falso
if(a < c)
{
//ramo vero
printf("\n i numeri sono in questo ordine %d %d %d \n", b, a, c);
}
else
{
//ramo falso
if(b < c)
{
//ramo vero
printf("\n i numeri sono in questo ordine %d %d %d \n", b, c, a);
}
else
{
//ramo falso
printf("\n i numeri sono in questo ordine %d %d %d \n", c, b, a);
}
}
}

system("pause");

return (0);
}
 
Ultima modifica da un moderatore:
non capisco come fare un es di informtica che mi hanno dato
prima di tutto questa non è una chat, non stai su whatsapp quindi scrivi un solo post
seconda cosa leggi il regolamento, la sezione supporto privato riguarda problemi sw del forum non i compiti di scuola
terza cosa quando posti lo devi fare in una sezione corretta, il tuo è un problema di programmazione quindi è in sezione programmazione che devi aprire il thread
quando inserisci un codice di programmazione dovresti usare il tag CODE (codice) che ti fa scegliere il linguaggio usato, (C, C++, Java ecc), se usi lo spoiler non si capisce niente perché perdi la formattazione e l'indentazione

system("pause");
evita di usare questa istruzione, non è standard, se vuoi fare in modo che la finestra del programma non si chiuda fino a quando non premi un tasto, puoi sostituirla con il seguente ciclo:
C:
while(getchar() != '\n'); // consuma input e aspetta INVIO
che ferma il programma fino a quando non premi <INVIO>
scanf("%d", &a);
è sbagliato: se i numeri sono float devi usare scanf("%f", &a);
il %d è per gli interi
in alternativa devi dichiarare come int le variabili a, b, c
questo è quello che ho fatto, ma quando scrivo i numeri mi dice solamente l'ordine delle lettere e non mi mette in ordine i numeri, non capisco come fare
non ho controllato se la sequenza di if-else fa ciò che dovrebbe ma se l'esercizio ti chiede di stampare i numeri in modo crescente, devi solo produrre le stampe;
se invece devi anche cambiare il valore delle variabili ti serve una variabile di appoggio (di tipo float o int a seconda del tipo usato) per effettuare lo scambio di valori. Per esempio se a>b e devi metterli in ordine crescente dovrai fare
C:
float t;
if(a > b) { // scambia a con b, per esempio se a=5 e b=2
    t = b; // t=2
    b = a; // b=5
    a = t; // a=2 --> ora a=2 e b=5
}
ovviamente devi farlo per le altre coppie di numeri, cioè poi testi se a>c (se sì li scambi)
infine testi se b>c (se sì li scambi)
dopo i 3 test le variabili sono ordinate e stampi direttamente a, b, c.
 
Pubblicità
Pubblicità
Indietro
Top