Linguaggio C riconoscere numeri razonali

tenebrikko
salve ragazzi! sto scrivendo un eseguibile ma non ne esco... non riesco a trovare il modo per distinguere un numero razionale da uno irrazionale;
faccio un esempio: dato int a come posso dire al programma di dirmi se a/2 è un numero razionale o intero? grazie

Risposte
Paolo902
"tenebrikko":
salve ragazzi! sto scrivendo un eseguibile ma non ne esco... non riesco a trovare il modo per distinguere un numero razionale da uno irrazionale;
faccio un esempio: dato int a come posso dire al programma di dirmi se a/2 è un numero razionale o intero? grazie


Ciao.

Non ho molto chiaro il tuo problema. Devi distinguere razionali da irrazionali o razionali da interi? La seconda distinzione è in verità un po' senza senso, giacchè un intero è anche un razionale ($NN \subset QQ$).

Quello che però ti serve - secondo me - è questo: sapere se $a/2$ è intero o non intero. In tal caso non è difficile. Io scriverei un if che controlla il resto di $a$ nella divisione per $2$: se $a -=0 " mod2 "$ allora $a/2$ è intero, altrimenti no.

Hai capito? :wink:

tenebrikko
si capito :) grazie x l'aiuto :) alla fine ho risolto scrivendo:
if (resto = a % 2, resto == 0);
else continue;

così ho ciò che cercavo :) grazie mille :)

apatriarca
E' in generale cattiva abitudine quella di mischiare l'assegnazione e la selezione nella stessa riga. Sarebbe stato meglio scrivere:

resto = a % 2;
if (resto == 0) {
// ...
} else {
// ...
}

Ma in ogni caso questo test serve solo per distinguere un numero pari da uno dispari.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.