NewbieContest

Programmation => Langages compilés => Discussion démarrée par: banshee le 05 Décembre 2006 à 20:24:06



Titre: [C] Probleme de compilation
Posté par: banshee le 05 Décembre 2006 à 20:24:06
Bon voilà, je suis entrain de réaliser un projet mais j'ai une partie de mon code qui ne veux pas compiler et qui m'affiche des erreurs incompréhensibles.

Voila mon code :

#include <iostream>
#include <cmath>
using namespace std;
struct pixel {
  int x,y;
};
int distance (pixel p, pixel g){
return sqrt ((p.x - g.x)*(p.x - g.x)+(p.y - g.y)*(p.y - g.y));
}

int main (int argc, char * const argv[]) {
   pixel p,g;
   int r;
   p.x=3;
   p.y=4;
   g.x= 5;
   g.y =8;
r =distance (p,g) ;
cout<<r;
}

Merci d'avance...


Titre: [C] Probleme de compilation
Posté par: shiroko le 05 Décembre 2006 à 20:34:23
Heu .... c'est quoi l'erreur ? Tu compiles avec quoi ?


Titre: [C] Probleme de compilation
Posté par: banshee le 05 Décembre 2006 à 20:44:14
Je suis sous Xcode (mac os X)

error : no type named 'iterator_category' in 'struct pixel'
error : no type named 'value_type' in 'struct pixel'
error : no type named 'difference_type' in 'struct pixel'
error : no type named 'pointer' in 'struct pixel'
error : no type named 'reference' in 'struct pixel'


Titre: [C] Probleme de compilation
Posté par: zours le 05 Décembre 2006 à 21:01:16
Désolé banshee, mais distance est un nom déjà utilisé.

Pour que ça marche, faudra en utiliser un autre (sans compter que t'as une erreur de typage, faudra aussi caster).


Titre: [C] Probleme de compilation
Posté par: neoflo le 05 Décembre 2006 à 22:16:15
Citation de: zours
Désolé banshee, mais distance est un nom déjà utilisé.
C'est utilisé par la STL mais suffit de pas faire le boulet à utiliser : using namespace std;

Je te signale au passage que ta fonction main est censé retourner un int.

Code:
#include <iostream>
#include <cmath>

struct pixel {
  int x,y;
};


double distance (pixel p, pixel g){
return sqrt ((p.x - g.x)*(p.x - g.x)+(p.y - g.y)*(p.y - g.y));
}

int main (void) {
 pixel p,g;
 double r;
 
 p.x=3;
 p.y=4;
 g.x= 5;
 g.y =8;
 
 r =distance (p,g) ;
 
 std::cout<<r;

 return EXIT_SUCCESS;

}


Titre: [C] Probleme de compilation
Posté par: Nebelmann le 06 Décembre 2006 à 08:46:10
Citation
Je te signale au passage que ta fonction main est censé retourner un int.
Un double, non ? =D


Titre: [C] Probleme de compilation
Posté par: Invit le 06 Décembre 2006 à 09:25:43
Citation de: neoflo
ta fonction main est censé retourner un int.
Citation de: Nebelmann
Un double, non ? =D
non =D
Citation de: neoflo
int main (void)


Titre: [C] Probleme de compilation
Posté par: Nebelmann le 06 Décembre 2006 à 16:45:03
pwn3d, j'avais lu "la fonction distance" xD