Newsgroup: it.comp.lang.c
Titolo: Come faccio a...

Salve a tutti ,  con una
espressione if devo stabilire se un numero è pari o dispari , come posso
fare ?mi spiego meglio,almeno
spero . non posso
fare if a ==10 o a >= oppure a>= , a prescindere dal numero è dalla sua
grandezza , devo , solo con l'if
stabilire se è pari o dispari , il numero può essere 1 o 1947273837637382982
...
Grazie a tutti
Ciao :-) Roberto

 fare ?
#include <stdio.h>
int main()
{
    int num1 = 5;
    int num2 = 6;
    printf ( "Il numero: %d e' %s\n",num1, ( num1%2 )?"dispari":"pari" );
    printf ( "Il numero: %d e' %s\n",num2, ( num2%2 )?"dispari":"pari" );
    return 0;
}

 fare ?mi spiego meglio,almeno
usi l'operatore modulo %
che ti da il resto della divisione tra due numeri
Se fai modulo 2 e hai come risultato 0, il numero è pari, se hai 1 è
dispari.
Es.
int numero;
if (numero%2)
   printf("è dispari");
else
   printf("è pari");
ciao ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

>    printf ( "Il numero: %d e' %s\n",num1, ( num1%2 )?"dispari":"pari" );
Scusa, siccome cosi' non l'avevo mai vista mi spiegheresti la sintassi
di cui sopra ? In base a che stampa dispari o pari ? Stampa pari se
num1%2 e' 0 cioe' falsa ?
Augusto Pucci
Webmaster di Prospektiva On-line
http://www.prospektiva.it

stabilire se č pari o dispari , il numero puň essere 1 o 1947273837637382982
int odd( int x ) 
{
    return ( x % 2 ) ;
}
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]

num1%2 e' 0 cioe' falsa ?
Non avevi mai visto l'operatore punto interrogativo-due punti ?
Se num % 2 vale 0, cioe' falso, stampa "pari", altrimenti "dispari".


Non avevi mai visto l'operatore punto interrogativo-due punti ?
No, avevo semrpe usato degli if condizionali... pero' sono contento
che tu mi abbia spiegato come funziona perche' e' molto piu' compatto
e sintetico.


e sintetico.
E anche un po' piu' pericoloso :)
Vedi, ad es.:
x = y ? 0 : x + 1 ;


 Ciao :-) Roberto
Veloce come la luce:
  if (a&1) {
    ahah sono dispari :)
  } else {
    eheh io invece sono pari :P
  }
Se vuoi essere ancora piu' veloce (tipo fare un interrupt handler),
sappi che i processori schedulano in pipeline le 'if' come 'not taken'
ovvero, per velocizzare il piu' possibile, il test si fa su una
condizione che e' vera meno del 50% dei casi! :)))
Ciao, Andrea
-- 
-----------------+-------------------------------- .~~~.  ))
 Andrea  Rimicci | arimicci @@           (\__/)  .'     )  ))
-----------------+       aritaly. com   /o o  \/     .~
                                       {o_,    \    {
 C,C++,cgi,miva,Java,php Developer and   / ,  , )    \ .
 OS/2 Warp Server for E-business admin   `~  '-' \    } ))
                                        _(    (   )_.'
---------- OS/2 V5 "Phoenix" --------- '---..{____}

 printf ( "Il numero: %d e' %s\n",num1, ( num1%2 )?"dispari":"pari" );
	(numl&1)?"dispari":"pari";
  ;)
	Alla prossima,
		Marco

	(numl&1)?"dispari":"pari";
imho, qualsiasi compilatore un minimo efficiente (ma
proprio un minimo) ottimizza gia' di suo.
Oha
-- 
#include <disclaimer.h>

 un minimo) ottimizza gia' di suo.
  Quando l'ottimizzazione puo` essere human-driven, perche` rinunciarvi?
:)
	Alla prossima,
		Marco

:)
metti che qualcuno decida che il bit piu' basso dia il
segno?
:)
Oha
-- 
#include <disclaimer.h>

 metti che qualcuno decida che il bit piu' basso dia il segno? :)
  E` un pazzo. :)
  L'ottimizzazione non produce mai codice portabile, ad ogni modo...
:)))
	Alla prossima,
		Marco

   E` un pazzo. :)
Sei proprio sicuro?
I numeri interi _negativi_ sono, per quel che ne so, rappresentati su
vari hardware in tre modi (non e' detto che non ne esistano altri di
cui non sono a conoscenza): sign/magnitude, complemento a 2 e
complemento a 1.  Se vuoi sapere che un numero intero _negativo_ e'
dispari solo guardando il lsb, due di queste rappresentazioni danno il
risultato giusto ma la terza da il risultato sbagliato...
Perche' non far fare al compilatore quello per cui e' stato creato?
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 Sei proprio sicuro?
  Non citare i messaggi a meta`: qualcun altro, oltre te, potrebbe
perderne il senso.
	Alla prossima,
		Marco