У меня есть домашнее задание на 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
поле и получить i-й элемент arr
поле.
vect
не является массивом, поэтому вы не можете использовать vect[i]
, ты должен написать vect->arr[i]
— ->
Оператор используется для доступа к члену структуры. Вы должны также #include <math.h>
В случае, если вы забыли это.