[Tech] C

Leonardo Boselli leo@dicea.unifi.it
Dom 11 Mar 2001 10:30:25 CET


A parte che questa probabilmente non e`la lista pił adatta a parlare 
di linguaggi particolari rispondo:
stai confrontando la rappresentazione di un numero (il codice del 
carattere che lo rappresenta) e quindi usi '0' che e` il codice del 
carattere 0 , (che nel codice pił comunemente usato vale 48 ) 
mentre 0 senza apici e`il valore 0 .
(per estensione "0" e`il puntatore a una stringa che rappresenta il 
carattere 0 ). lo stesso risponde alla domanda 2.
Per la terza domanda: (c-'0') di da la differenza tra il carattere 
rappresentato e lo zero, e siccome si assume che i numeri siano 
in ordine (c-'0') rappresenta il numero . se usassi c ti ritroveresti i 
valori da 48 a 57 !
Per il problema numero 2 , ossia la radice,
premesso che avrei scritto diversamente (ossia (Xn+R/Xn)/2 )
non so in primo luogo quale fosse l'i iniziale, inoltre avrei definito r 
come float, e quindi fatto r=i ; .
Mettere un intero in una operazione potrebbe creare dei cast 
indesiderati ...
On 11 Mar 2001, at 4:40, Ombra Rossa wrote:
> sto studiando C con il libro:
> if(c >= '0' && c <= '9')
> ++ndigit[c-'0'];
> .....?????
> Domande:
> 1)perche' poner c >= '0' e non c >= 0 se c e' un intero da 0 a 9???
> 2)perche' ponere [c - '0'] invece che [c-0] ???
> 3)Se c e' un numero tra 0 e 9 8struttura if), perche' ponere un indice per 
> ndigit complicato come [c - '0'] invece che una cosa semplice come [c]???
> Spero che le domande non siano troppo stupide. Grazie.
>                                    Ombra.
> _________________________________________________________________________
> Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
> 
> 
> _______________________________________________
> FLUG - Discussioni tecniche - tech@firenze.linux.it
> URL: http://lists.firenze.linux.it/mailman/listinfo/tech
> Archivio: http://lists.firenze.linux.it/pipermail/tech
> Ricerca nell'archivio: http://www.firenze.linux.it/search


Leonardo Boselli
nucleo informatico e telematico
Dipartimento Ingegneria Civile
Universita` di Firenze
V. S. Marta 3 - I-50139 Firenze
tel +39()0554796431 fax +39()055495333
http://www.dicea.unifi.it/~leo




Maggiori informazioni sulla lista flug-tech