Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di EngLab
    Registrato dal
    Jan 2006
    Messaggi
    496

    [C] - Funzione di controllo quadrato perfetto

    Ciao!

    In un mio programma C, devo verificare che un dato int sia un quadrato perfetto. Esiste una funzione già esistente che posso usare?

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,255
    No .. come lo faresti "su carta"?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di EngLab
    Registrato dal
    Jan 2006
    Messaggi
    496
    Semplicemente:

    codice:
    float rad;
    int num;
    
    //...
    
    rad=square(num);
    Poi, controllerei se rad è un intero. E questa è la mia seconda domanda. Non esiste nessuna funzione, tipo is_int() per controllare che un float abbia parte decimale uguale a 0?

  4. #4
    codice:
    if(floor(rad)==rad)
        //il numero non ha parte decimale
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,255
    Originariamente inviato da EngLab
    E questa è la mia seconda domanda. Non esiste nessuna funzione, tipo is_int() per controllare che un float abbia parte decimale uguale a 0?
    Ripeto ... come faresti "sulla carta" ...?

    Un numero non ha parte decimale (o lo ha eguale a zero) se il numero risulta eguale alla sua parte intera ...

    Vedi la risposta di MItaly ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di EngLab
    Registrato dal
    Jan 2006
    Messaggi
    496
    La funzione floor è proprio quella che mi serve. Non sapevo come si chiamasse.
    Comunque, io ho

    codice:
        int diff;
        double rad;
    
        //il diff lo calcolo e risulta corretto
        rad=(double)sqrt(diff);
        printf("diff=%d rad=%d\n", diff, rad); //qui stampa diff e rad
    La printf finale mi da un diff esatto, ma rad risulta sballatissimo, addirittura negativo.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,255
    %d serve solo per gli interi ... ma rad non e' un intero ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di EngLab
    Registrato dal
    Jan 2006
    Messaggi
    496
    Grazie mille, sono all'inizio col C.

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 © 2019 vBulletin Solutions, Inc. All rights reserved.