程序设计 -- 找平方数

小明刚刚在数学课上学习了什么是平方数,例如5*5=25,则25是一个平方数。现在数学老师布置了一个任务:给定n个整数,将其中的平方数选择出来,并按照原来的先后顺序输出。这么多,又那么大的数,人工判断显然比较繁琐,学会了编程的你,请你编写一个程序帮助小明来完成这个任务。
输入格式
第一行仅有一正整数n(1≤n≤100)
第二行包含n个正整数(均不超过 10^6,两两之间用一个空格分隔。
输出格式
输出包含若干行,每行仅有一个平方数(记得是按照输入数据的先后顺序输出啊)。
样例
输入数据 1
8
49 13 36 20 25 30 16 40
输出数据 1
49
36
25
16

代码如下:

#include<bits/stdc++.h>
using namespace std;
int a[10005],x[10005];
int n;
double b[10005];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        b[i]=sqrt(a[i]);
        x[i]=sqrt(a[i]);
        if(x[i]==b[i]) cout<<a[i]<<endl;
    }
    return 0;
}

希望对题主有帮助!

#include <iostream>
#include <cmath>

int main()
{
    const int N = 100;
    int n;
    int a[N];
    std::cin >> n;
    for (int i = 0; i < n; i++)
        std::cin >> a[i];
    for (int i = 0; i < n; i++)
    {
        int x = static_cast<int>(std::sqrt(a[i]));
        if (x * x == a[i])
            std::cout << a[i] << std::endl;
    }
    return 0;
}