PDA

Visualizza la versione completa : [C] Minore e maggiore


ant_alt
15-11-2005, 12:59
ho 3 variabili inserite da uno scanf..ora volevo sapere se c'è un modo + veloce di visualizzare il minore e il maggiore di questi tre:


#include<stdio.h>

int main ()
{
int primo, secondo, terzo;

printf(" Inserisci tre numeri: ");
scanf("%d %d %d", &primo, &secondo, &terzo);
if (primo > secondo && primo > terzo)
printf("\n\nIl numero maggiore è %d", primo);
else if (secondo > primo && secondo > terzo)
printf("Il numero maggiore è %d", secondo);
else if (terzo > primo && terzo > secondo)
printf ("Il numero maggiore è %d", terzo);
return 0;
}


facendo così visualizzo il maggiore..dovrei fare altrettanto x il minore o c'è un metodo migliore?

oregon
15-11-2005, 13:23
Ma a te serve conoscere il valore minore/maggiore tra quelli inseriti o interessa sapere se era il primo o il secondo o il terzo?

ant_alt
15-11-2005, 13:33
mi interessa sapere il maggiore e il minore....è quello k ho detto :stordita:

oregon
15-11-2005, 13:40
Ok ...

Un esempio di codice per i 3 valori potrebbe essere



#define MAX(a,b) ((a>b) ? (a) : (b))
#define MIN(a,b) ((a<b) ? (a) : (b))

int main(int argc, char *argv[])
{
int primo, secondo, terzo;

printf(" Inserisci tre numeri: ");
scanf("%d %d %d", &primo, &secondo, &terzo);

printf("Il maggiore e' %d\n", MAX(primo, MAX(secondo, terzo)));

printf("Il minore e' %d\n", MIN(primo, MIN(secondo, terzo)));

return 0;
}


Nel caso avessi molti piu' elementi, sarebbe necessario inserirli in un array e lavorare su quello per trovare il minore e il maggiore ...

ant_alt
15-11-2005, 13:48
:cry: ke è #define??xke ci sono due termini e xke si chiamano a e b?? :cry:

oregon
15-11-2005, 13:55
Se stai iniziando a studiare il C, devi partire dalle direttive del preprocessore ...

#define

e' una direttiva del preprocessore (come la #include).

Serve a definire del "testo" che verra' "sostituito" prima della compilazione ad altro testo nel sorgente ...

Nel caso indicato, MIN e MAX sono definite come "macro" e "a" e "b" sono i parametri della macro ...

LeleFT
15-11-2005, 13:56
1) Perchè #define? Il define serve a definire un'espressione o, come in questo caso, una funzione.

2) Perchè ci sono 2 termini? Semplice: la relazione di maggioranza o di minoranza è definita su due elementi. E' una relazione binaria. Un numero può essere messo in relazione solo con un altro numero, non con una coppia, terna, ecc...

3) Perchè si chiamano a e b? Forse perchè oregon ama quei nomi di variabile... se ti fa piacere puoi chiamarli "pippo" e "pluto"... :)


Ciao. :ciauz:

ant_alt
15-11-2005, 16:47
Originariamente inviato da LeleFT
1) Perchè #define? Il define serve a definire un'espressione o, come in questo caso, una funzione.

2) Perchè ci sono 2 termini? Semplice: la relazione di maggioranza o di minoranza è definita su due elementi. E' una relazione binaria. Un numero può essere messo in relazione solo con un altro numero, non con una coppia, terna, ecc...

3) Perchè si chiamano a e b? Forse perchè oregon ama quei nomi di variabile... se ti fa piacere puoi chiamarli "pippo" e "pluto"... :)


Ciao. :ciauz:

si ma i miei termini sono 3! :confused:

unomichisiada
15-11-2005, 16:53
Originariamente inviato da ant_alt
si ma i miei termini sono 3! :confused:
E allora la applichi più volte come ti ha mostrato oregon :rollo: ....

oregon
15-11-2005, 17:19
Originariamente inviato da LeleFT
1) Perchè #define? Il define serve a definire un'espressione o, come in questo caso, una funzione.


Scusa per la precisazione, ma con la #define non si definisce una funzione. La #define esegue una semplice definizione di macro il cui testo viene sostituito nel sorgente prima della compilazione.
C'e' una bella differenza con una funzione ...



Originariamente inviato da ant_alt
si ma i miei termini sono 3! :confused:

I tuoi termini sono 3 e potrebbero essere 1000, ma per determinare un massimo ne confronti sempre 2 ...

Prendi il primo e il secondo e il massimo tra questi lo confronti con il terzo, il massimo tra questi con il quarto ... e cosi' via ...
Il confronto avviene *sempre* tra due valori.

Loading