Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    1

    [C] scoprire se un numero è reale o intero

    Salve a tutti,
    il mio professore mi ha sottoposto il seguente programma da realizzare:
    passo1: aprire il file con numeri reali ed interi
    passo2: scrivere su un altro file quanti sono i reali e quanti gli interi

    mi ha dato un suggerimento: "usa il cast di variabile e l'operatore modulo %"

    In base a quanto suggeritomi, ho pensato al seguente procedimento:
    1-apro il file e carico su un vettore di float tutti i numeri
    2-converto il vettore di tutti float in tutti in int (con il cast)
    3-riconverto il vettore di tutti int in tutti float (con il cast) in modo da avere, infine, due vettori.
    Ad esempio: V[0]=12,3400 W[0]=12,0000
    4-faccio V[0]%W[0], se il risultato è 0 allora vuol dire che il numero è reale (incremento il contatore dei reali), altrimenti il numero è intero (incremento il contatore degli interi)

    Il problema in tutto questo è che l'operatore modulo % funziona solo con valori int e non con i float!!!!

    allora vi chiedo:
    - sono sbagliati i suggerimenti del professore?
    - sbaglio io il ragionamento???

    grazie in anticipo a quanti mi risponderanno

  2. #2
    Io molto banalmente li leggerei tutti come double e vedrei per ciascuno se hanno una parte frazionaria. O usi la funzione modf, oppure ti basta usare la funzione floor per troncare la parte decimale e sottrai tale risultato al numero originario: se il risultato è zero non c'è parte decimale.

    Non ho idea di perché il tuo professore abbia tirato in ballo l'operatore modulo.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.