我有作业要做C++,我试图找出数组中的数字是否是完美的正方形。此外,该阵列是动态分配的。这是我的代码:
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;
}
vect
是指向具有arr
字段的结构的指针,因此您需要确定要查找的字段:
sqrt(vect->arr[i]) * sqrt(vect->arr[i])
请注意,vect[i]
写你的意思是很多 vect 元素并试图获得第 i 个vect 元素。但是写vect->arr[i]
你的意思是指向某个确切的 vect 元素的指针,试图评估它的arr
字段并获取arr
字段的第 i 个元素。
vect
不是数组,所以你不能使用vect[i]
,你应该写vect->arr[i]
- ->
运算符用于访问结构的成员。你也应该#include <math.h>
,以防你忘记了。