V I S U A L I Z Z A D I S C U S S I O N E |
klaudio |
Inserito il - 14/12/2006 : 09:38:34 Qualcuno che ha avuto la fortuna di avere un professore che gli abbia insegnato a programmare in c potrebbe per favore spiegarmi cosa fa esattamente il programma!! Se digito la lettera a mi restituisce in valore letto il codice ascii della lettera a(97)e in valore intero calcolato 49 che equivale a 1 nella tabella ascii. Se digito 1 mi restituisce in valore letto il codice ascii di 1 e in valore intero calcolato 1. Cioč trasforma 1cifra in 1 intero e la lettera a in cosa viene trasformata?? Il nostro prof di progra vuole adesso farci modificare il programma facendoci digitare un intero e trasformarlo in una sequenza di caratteri..........E come si fa??
//QUESTO PROGRAMMA LEGGE UNA SEQUENZA DI CARATTERI NUMERICI
//E LA TRASFORMA IN UN NUMERO INTERO
//!!!ATTENZIONE!!! //IN C NON ESISTE L'OPERATORE DI ELEVAMENTO A POTENZA //COSTRUIAMO UNA FUNZIONE DI ELEVAMENTO A POTENZA FRA INTERI
#include <stdio.h> #define zero '0' #define base 10 int potenza(int , int ); ***********Perche č necessario definire una funzione per l’elevamento a potenza??***********
int main() { char car, v[10]; int cifra, intero; int n_v,i; //LEGGE LA SEQUENZA DI CARATTERI NUMERICI printf("\nDIGITA UNA SEQUENZA DI CARATTERI NUMERICI, MASSIMO 8 CARATTERI"); printf("\n"); scanf("%c",&car); i=0; ************Perchč inizializza i a 0************ while((car!=' ')&&(car!='\n')) { v[i]=car; i++; scanf("%c",&car); } n_v=i; *********Cosa fa questo assegnamento??*********** printf("\nVALORE LETTO = "); for(i=0;i<n_v; i++)printf("%c",v[i]); printf("\n"); // //TRASFORMA LA SEQUENZA IN NUMERO INTERO intero=0; for(i=0;i<n_v;i++) { //TRASFORMA IL CARATTERE i.mo IN CIFRA cifra=v[i]-zero; //AGGIORNA INTERO intero=intero+cifra*(potenza(base,(n_v-1-i))); ****Cosa fa???***** } printf("\nVALORE INTERO CALCOLATO =%d",intero); printf("\n"); system("pause"); return 0; }
int potenza(int b,int e) { int i, p; p=1; for(i=0; i<e; p*=b,i++); return p; }
|
2 U L T I M E R I S P O S T E (in alto le piů recenti) |
genius |
Inserito il - 14/12/2006 : 15:43:54 bč io direi che il tuo problema non č il c. Prima di capire il programma, cerca di capire cosa vuoi fare. Nella fattispecie stai trasformando la stringa '12345' nel numero 12345, leggendo questa stringa carattere per carattere da tastiera. Come sicuramente saprai (lo sai vero???) il sistema di numerazione decimale (e in generale tutti i sistemi di numerazione + usati) č un sistema 'posizionale'. Questo significa ke la cifra 1 ha valore 1 nel numero 21, ma ha valore 100 nel numero 120. La funzione potenza ti serve a calcolare il valore di una cifra in base alla sua posizione e alla base del sistema di numerazione ke stai usando (decimale, binario, ottale...) |
fabbattista |
Inserito il - 14/12/2006 : 09:46:46 se posso dare un consiglio, prima di capire cosa fa il codice, chiarisciti le idee su quale algoritmo stai usando per fare la operazione di conversione in questione.... |
|
|