Как узнать, является ли sqrt(x) числом типа int?
То есть, если
sqrt(25) == int // √25=5
cout << "true"
if sqrt(20) == int // √20 = 4.47
cout << false
Ну уже говорили про double, а так то можно сделать следующим образом, так как диапазон int это целые числа от -2 147 483 648 до 2 147 483 647
[THIDE="0"]#include <iostream>
#include <math.h>
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
int a;
cin>>a;
if((sqrt(a) >= -2147483648LL && sqrt(a) <= 2147483647LL)) {
cout<< ((int)sqrt(a) == sqrt(a) ? "int" : "вещественное") <<endl;
}
else
{
cout<< ((int)sqrt(a) == sqrt(a) ? "целое" : "вещественное") <<endl;
}
cout<<sqrt(a);
}[/THIDE]