2016-03-13 45 views
-2

J'ai un devoir à faire en C++, j'essaie de trouver si des nombres d'un tableau sont parfaits Square. En outre, ce tableau est attribué de façon dinamique. Voici mon code:C++ Aucune instance de la fonction surchargée "sqrt" ne correspond à la liste des arguments - Essayer de trouver si un tableau de type struct est un carré parfait

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; 
} 
+3

'vect-> arr [i]'. –

+0

Merci, tout est logique maintenant :) – user3165587

Répondre

0

vect est un pointeur à un struct avec un arrchamp, donc vous devez déterminer quel domaine que vous recherchez:

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

S'il vous plaît noter que l'écriture vect[i] vous dire un lot de éléments vect et en essayant d'obtenir le i'th un vect élément. Mais l'écriture vect->arr[i] vous dire un pointeur une certaine exacte élément vect, en essayant d'évaluer son arrchamp et obtenir i'th élément de arr champ.

0

vect est pas un tableau, de sorte que vous ne pouvez pas utiliser vect[i], vous devez écrire vect->arr[i] - l'opérateur -> est utilisé pour accéder à un membre de struct. Vous devriez également #include <math.h>, au cas où vous l'auriez oublié.