-2

我有一个 C++ 作业要做,我试图找出数组中的数字是否是完美的 Square。此外,该数组是动态分配的。这是我的代码:

myVector perfectSquare(myVector *vect)
{
    myVector rez;
    rez.length = 0;

    for (int i = 0; i < vect->length; i++)
        if (vect[i] == sqrt(vect[i])*sqrt(vect[i])) // here it gives error
        {
            addToVector(&rez, vect->arr[i]);
        }

    return rez;
}
4

2 回答 2

0

vect不是数组,所以你不能使用vect[i],你应该写vect->arr[i]-->运算符用于访问结构的成员。你也应该#include <math.h>,以防你忘记了它。

于 2016-03-13T10:25:41.860 回答
0

vect指向带有字段结构的指针,因此您需要确定要查找的字段:arr

sqrt(vect->arr[i]) * sqrt(vect->arr[i])

请注意,写vect[i]你意味着很多vect 元素并试图获得第 ivect 元素。但是写vect->arr[i]你的意思是指向某个确切的vect 元素的指针,试图评估它的arr 字段并获得第 i个字段元素arr

于 2016-03-13T10:25:46.560 回答