求m到n 的完全平方数,报错,错在哪?

#include <iostream>
#include<cmath>
using namespace std;

int main()

{
    int n,m,i,sum=0;
    cin>>n>>m;
    if(n>m) swap(n,m);
    for(i=n;i<=m;i++){

        if(sqrt(i)>=n&&sqrt(i)<=m&&sqrt(i)=ceil(sqrt(i)))
            sum++;
    }

cout<<sum;
    return 0;
}

#include <iostream>
#include<cmath>
using namespace std;

int main()

{
	int n, m, i, sum = 0;
	cin >> n >> m;
	if (n > m) swap(n, m);
	for (i = n; i <= m; i++) {
		if (sqrt(i) >= n && sqrt(i) <= m && sqrt(i) == ceil(sqrt(i)))	// 等号
			sum++;
	}

	cout << sum;
	return 0;
}

sqrt(i)==ceil(sqrt(i))

少了个等号

报什么错?什么报错都不说。。。。我简单看了下,你的if判断里面的sqrt(i)=ceil(sqrt(i)),请用==号判断而不是赋值。