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!
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!
No .. come lo faresti "su carta"?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Semplicemente:
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?codice:float rad; int num; //... rad=square(num);
codice:if(floor(rad)==rad) //il numero non ha parte decimale
Amaro C++, il gusto pieno dell'undefined behavior.
Ripeto ... come faresti "sulla carta" ...?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?
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.
La funzione floor è proprio quella che mi serve. Non sapevo come si chiamasse.
Comunque, io ho
La printf finale mi da un diff esatto, ma rad risulta sballatissimo, addirittura negativo.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
%d serve solo per gli interi ... ma rad non e' un intero ...
No MP tecnici (non rispondo nemmeno!), usa il forum.