Ciao a tutti
Sono uno studente di ing informatica e mi stavo esercitando per l'esame con un compito passato di Laboratorio di informatica il testo è:
Costruire una lista dinamica di X numeri a virgola mobile, riempita con valori random che vanno da 1,01 a 99,99. Tutti i valori della lista dovranno essere salvati in un file (nomefile.txt) di tipo ascii. Il valore X deve essere passato da linea di comando, assieme al nome del file (es. nella finestra dos scrivere: nomeprogramma –x 200 –f nomefile.txt ).
Dopo avere scritto il file rileggerlo e riempire due diverse strutture dati. La prima e’ rappresentata da un albero che deve avere per radici tutti i valori letti dal file minori di 50. L’altra, rappresenta un vettore dinamico capace di contenere tutti i valori rimanenti (esempio per X =200, se 80 sono minori di 50 il vettore dinamico dovrà avere una dimensione di 120). Stampare a video tutti i valori contenuti dall’albero (in-order, pre-order, post-order) ed i valori contenuto dal vettore dinamico. Ricercare un elemento nelle due strutture introdotte.
ho un problemio:
ho usato per i numeri random variabili float(xx.xxxxxx) e per stamparli ho usato %2.2f cosi l'utente legge un numero del tipo xx.xx (numero random:23.342434-numero stampato:23.34)come scritto nel testo.
Ma quando l'utente sceglie di fare una ricerca e scrive uno dei numeri che legge a schermo del tipo xx.xx(tipo 23.34) ,il programma lo salva in un float e salverà xx.xx0000(tipo 23.3400000) , quando lo vado a cercare nel vettore con i numeri non lo troverà(23.3400000!=23.342434).
Quindi quelle 4-5 cifre che tronco "virtualmente" con l'escamotage del printf mi fanno incasinare tutto.Come faccio a troncare veramente il float,dove c'è salvato il numero random,con solo 2 cifre dopo la virgola?Spero di essere stato chiaro ma non è semplicissimo da spiegare se avete bisogno di chiarimenti per aiutarmi chiedete pure .GRAZIE
CIAO