Linguaggio C riconoscere numeri razonali
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
faccio un esempio: dato int a come posso dire al programma di dirmi se a/2 è un numero razionale o intero? grazie
Risposte
"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?

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


if (resto = a % 2, resto == 0);
else continue;
così ho ciò che cercavo


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.
resto = a % 2;
if (resto == 0) {
// ...
} else {
// ...
}
Ma in ogni caso questo test serve solo per distinguere un numero pari da uno dispari.