sto a programmare per le vacanze scolastiche (compito di scuola, unico al mondo che li fa, ma almeno mi servono per mantenere in esercizio per il c++ che sennò me lo scordo) un simulatore di telefonia mobile, ovvero ci sono tre gestori con diversi numeri telefonici che devono anche chiamarsi fra di loro. ma questo è la cosa meno importante. la cosa che non riesco a capire è la stranezza di alcune cose che mi capitano.
l'ultima cosa che non posso capire è perchè appena richiamata una funzione bool funzione() mi esegua la prima linea di cout<<"testo su video" e poi esca dal programma con un
Errorre di virgola mobile
eppure in quel preciso spezzone di codice non esiste neanche UNA operazione in virgola mobile, ma neanche mezzavariabile in virgola mobile. da cosa è definito un problema del genere?
vi copio ed incollo uno spezzone della funzione, ovviamente non si capirà a cosa serve ma diciamo che è inserita nel complesso dell'intelligenza artificiale che controlla il mercato.
<br />bool termina_chiamata_random()<br />{<br /><br /> cout<<"Avviata termina chiamata random..."<<endl; <br />//dopo quest a scritta il programma esce e da errore di virgola mobile<br />//l'errore lo dà anche se tolgo il cout ma in qualsiasi caso non esegue il cout qua sotto anche se elimino quello sopra<br /> cout<<"Questa scritta non fa in tempo a visualizzarsi";<br />chiamata * scorr = c_testa;<br /><br />int cc=0;<br />while (scorr!=NULL) {<br /> cc++; scorr=scorr->c_next;<br /> }<br />scorr=c_testa;<br />for (int i=0;i<rand() % cc;i++)<br />{<br />scorr=scorr->c_next;<br />}<br />close_phone(scorr->c_prefix,scorr->c_number1);<br />return true;<br />}<br />
Se la lista è vuota "cc" rimane inizializzato a 0
Successivamente la divisione in modulo 0 nel for genera l'errore
[=666666][=x-small]Ci sono 642 cose che devono accadere in sequenza; noi siamo solo alla numero 8
[/][/]