Pages : 1
#1 Le 26/04/2008, à 12:14
- |3uddha
Probleme du Cavalier Euler - C
Bonjour,
Je suis en train de programmer en C le cavalier d'euler dont les regles sont :
-Avec les mouvements du cavalier ( En L) parcourir toutes les cases d'un echiquier
-ne jamais repasser par la meme case.
J'ai un début de programme recursif, qui utilise le backtracking, le programme tourne bien (càd lorsque il n'y a plus de solutions il revient au coup precedent et joue auter chose),
mais il s'arrete avant d'avoir terminé.. je ne comprends pas pourquoi..
Voici le code:
#include <stdio.h>
#include <stdlib.h>
#define N_CA 8 // a inclure dans un fichier.h
struct parcours{
int *x;
int valx;
int *y;
int valy;
};
typedef struct parcours parcours;
typedef struct parcours c[100000];
typedef int chessmap [N_CA][N_CA];
void affiche(chessmap map){
int i,j,a=0;
int repere=N_CA;
char repere_lettres= 'A';
for(i=7;i>=0;i--){
printf("\n%d ", repere); // Affichage des reperes numeriques
repere--;
for(j=0;j<N_CA;j++) // On affiche ligne par ligne
printf(" %3d",map[j][i]);
}
printf("\n ");
while(a<N_CA){ // Affichage des lettres
printf(" %c ",repere_lettres);
repere_lettres++;
a++;
}
printf("\n\n");
}
int appartenir(int j, int i){
if (j<4 && j>=0 && i<4 && i>=0)
return 1;
else
return 0;
}
int nbr_cases(chessmap dir){
int i,j,cpt;
cpt=0;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(dir[i][j]!=0)
cpt++;
}
}
return cpt;
}
int max(chessmap dir){
int *min,i,tmp,taille;
min=dir[0];
i=0;
tmp=0;
taille=N_CA * N_CA;
while(i++<taille){
if(tmp<*min)
tmp=*min;
min++;
}
return tmp;
}
void init(chessmap tab){
int i,j;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
tab[i][j]=0;
}
}
}
//fonction principale recursive
int boucle(int x, int y,chessmap chemin,int coup,c combi, int cpt){
int dir[8][8]={0};
int i,j,r,c;
c=1;
r=2;
/*les 8 directions de l'espace ou le cheval peut jouer */
if(appartenir(x+r,y+c) && chemin[x+r][y+c]==0 && verif_combi2(x,y,x+r,y+c,chemin,combi)==0)
dir[x+r][y+c]=1;
if(appartenir(x+r,y-c) && chemin[x+r][y-c]==0 && verif_combi2(x,y,x+r,y-c,chemin,combi)==0)
dir[x+r][y-c]=1;
if(appartenir(x-c,y+r) && chemin[x-c][y+r]==0 && verif_combi2(x,y,x-c,y+r,chemin,combi)==0)
dir[x-c][y+r]=1;
if(appartenir(x-c,y-r) && chemin[x-c][y-r]==0 && verif_combi2(x,y,x-c,y-r,chemin,combi)==0)
dir[x-c][y-r]=1;
if(appartenir(x-r,y+c) && chemin[x-r][y+c]==0 && verif_combi2(x,y,x-r,y+c,chemin,combi)==0)
dir[x-r][y+c]=1;
if(appartenir(x-r,y-c) && chemin[x-c][y-r]==0 && verif_combi2(x,y,x-c,y-r,chemin,combi)==0)
dir[x-r][y-c]=1;
if(appartenir(x+c,y+r) && chemin[x+c][y+r]==0 && verif_combi2(x,y,x+c,y+r,chemin,combi)==0)
dir[x+c][y+r]=1;
if(appartenir(x+c,y-r) && chemin[x+c][y-r]==0 && verif_combi2(x,y,x+c,y-r,chemin,combi)==0)
dir[x+c][y-r]=1;
if(coup<=1)
chemin[x][y]=1;
//no_solution
// if(!nbr_cases(dir))
// no_solution(chemin,coup,combi,cpt);
//sinon on joue sur la premiere case possible
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(i==7 && j==7)
return no_solution(chemin,coup,combi,cpt);
if(dir[i][j]==1 && chemin[i][j]==0 && !(verif_combi2(x,y,i,j,chemin,combi))){
printf("Tour numero : %d\n %d,%d",coup,i,j);
chemin[i][j]=coup++;
if(!nbr_cases(chemin)&& coup>3){
printf("Gaaaaaaaaaagner\n");
return 0;}
affiche(chemin);
pause();
return boucle(i,j,chemin,coup,combi,cpt);
}
}
}
}
int no_solution(chessmap chemin, int coup, c combi, int cpt){
int i,j,maxi;
printf("backtraaaaackkk\n"); //si aucune solution
maxi=max(chemin);
coup--;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(chemin[i][j]== maxi )
combi[cpt].y=&chemin[i][j]; //on recueille l'adresse du dernier mvmt
combi[cpt].valy=chemin[i][j];
chemin[i][j]=0;// on supprime le dernier mvmt
}
}
maxi=max(chemin); // on reprend a partir de l'avant dernier
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(chemin[i][j]==maxi && maxi>1){
combi[cpt].x=&chemin[i][j];// on recueille l'adresse de l'avant dernier mvmt
combi[cpt].valx=chemin[i][j];
printf("mouvements incompatibles %p -> %p = %d -> %d\n",combi[cpt].x,combi[cpt].y,combi[cpt].valx,combi[cpt].valy);
cpt++; // les adresses deviennent incompatibles
return boucle(i,j,chemin,coup,combi,cpt);
}
}
}
}
// on parcourt l'ensemble des combinaisons, et on les compare ac ce qui va etre joue
int verif_combi2(int x, int y,int u, int v, chessmap chemin,c combi){
int i,*depart,*arrivee,valx,valy;
depart=&(chemin[x][y]);// depart
arrivee=&(chemin[u][v]);
valx=chemin[x][y];
valy=(valx+1) ;
for(i=0;i<100000;i++){
if(depart==combi[i].x && arrivee==combi[i].y){
if(valy==combi[i].valy && valx==combi[i].valx){
printf("depart:%p -> %p ; %d -> %d\n",depart,arrivee,valx,valy);
// printf("Match,combi.valx=%d et combi.valy=%d !!\n",combi[i].valx,combi[i].valy);
return 1;
}
}
}
return 0;
}
void init_combi(c combi){
int i;
for(i=0;i<100;i++){
combi[i].x=NULL;
combi[i].y=NULL;
combi[i].valx=0;
combi[i].valy=0; }
}
int pause(){
int continuer;
continuer=0;
printf("Continuer ?, Entrez 1\n");
scanf("%d",&continuer);
if(continuer==1)
return 1;
}
int main(){
int cpt=0;
chessmap pos={0};
chessmap erreur={0};
chessmap chemin={0};
//chemin[3][2]=34;
//chemin[1][2]=23;
c combi;
int coup=1;
int x,y;
x=0;
y=0;
// combi[1].x=&chemin[1][3];
//combi[1].y=&chemin[2][4];
// no_solution(erreur,pos,chemin,coup,combi,cpt);
// verif_combi2(1,3,2,4,chemin,combi);
//init_combi(combi);
boucle(x,y,chemin,coup,combi,cpt);
affiche(chemin);
return 0;
}
Je le concéde le code est trés moche, mais ce n'est pas une priorité pour l'instant,j'attends qu'il tourne correctement pour l'ameliorer.
Merci a tous ceux qui jetteront un oeil sur le code.
Amicalement .;)
Nb:Je soupçonne la structure "parcours" de ne pas avoir assez de place.. je ne suis pas sur
Dernière modification par |3uddha (Le 26/04/2008, à 12:40)
Hors ligne
#2 Le 26/04/2008, à 12:26
- nicolas.sitbon
Re : Probleme du Cavalier Euler - C
En plus d'être moche, ça ne compile pas :
main.c:7: erreur: expected specifier-qualifier-list before «:" token
main.c:17: attention : no previous prototype for «affiche"
main.c:40: attention : no previous prototype for «appartenir"
main.c:47: attention : no previous prototype for «nbr_cases"
main.c:61: attention : no previous prototype for «max"
main.c:78: attention : no previous prototype for «init"
main.c:90: attention : no previous prototype for «boucle"
main.c: In function «boucle":
main.c:92: attention : accolades manquantes autour de l'initialisation
main.c:92: attention : (near initialization for «dir[0]")
main.c:93: attention : declaration of «c" shadows a global declaration
main.c:13: attention : déclaration est masquée ici
main.c:100: erreur: implicit declaration of function «verif_combi2"
main.c:100: attention : nested extern declaration of «verif_combi2"
main.c:138: erreur: implicit declaration of function «no_solution"
main.c:138: attention : nested extern declaration of «no_solution"
main.c:147: erreur: implicit declaration of function «pause"
main.c:147: attention : nested extern declaration of «pause"
main.c: Hors de toute fonction :
main.c:154: attention : no previous prototype for «no_solution"
main.c: In function «no_solution":
main.c:165: erreur: «struct parcours" has no member named «y"
main.c:165: erreur: expected «)" before «;" token
main.c:169: erreur: too few arguments to function «boucle"
main.c:169: erreur: expected «;" before «}" token
main.c:178: erreur: «struct parcours" has no member named «y"
main.c:178: erreur: «struct parcours" has no member named «valy"
main.c: Hors de toute fonction :
main.c:188: attention : no previous prototype for «verif_combi2"
main.c: In function «verif_combi2":
main.c:198: erreur: «struct parcours" has no member named «y"
main.c:199: erreur: «struct parcours" has no member named «valy"
main.c: Hors de toute fonction :
main.c:210: attention : no previous prototype for «init_combi"
main.c: In function «init_combi":
main.c:214: erreur: «struct parcours" has no member named «y"
main.c:216: erreur: «struct parcours" has no member named «valy"
main.c: Hors de toute fonction :
main.c:219: attention : function declaration isn"t a prototype
main.c:228: attention : function declaration isn"t a prototype
main.c: In function «main":
main.c:230: attention : accolades manquantes autour de l'initialisation
main.c:230: attention : (near initialization for «pos[0]")
main.c:231: attention : accolades manquantes autour de l'initialisation
main.c:231: attention : (near initialization for «erreur[0]")
main.c:232: attention : accolades manquantes autour de l'initialisation
main.c:232: attention : (near initialization for «chemin[0]")
main.c:231: attention : unused variable «erreur"
main.c:230: attention : unused variable «pos"
Hors ligne
#3 Le 26/04/2008, à 12:31
- |3uddha
Re : Probleme du Cavalier Euler - C
Effectivement, désolé, je viens de rectifier
Hors ligne
#4 Le 26/04/2008, à 12:33
- nicolas.sitbon
Re : Probleme du Cavalier Euler - C
Effectivement, désolé, je viens de rectifier
Ah bon? et on fait comment on devine ce que tu as rectifié?
Hors ligne
#5 Le 26/04/2008, à 12:35
- |3uddha
Re : Probleme du Cavalier Euler - C
Heu, non, j'ai rectifié le code dans mon premier message dans la balise code.
Hors ligne
#6 Le 26/04/2008, à 12:37
- nicolas.sitbon
Re : Probleme du Cavalier Euler - C
Heu, non, j'ai rectifié le code dans mon premier message dans la balise code.
c'est une blague?
main.c:7: erreur: expected specifier-qualifier-list before «:" token
main.c:17: attention : no previous prototype for «affiche"
main.c:40: attention : no previous prototype for «appartenir"
main.c:47: attention : no previous prototype for «nbr_cases"
main.c:61: attention : no previous prototype for «max"
main.c:78: attention : no previous prototype for «init"
main.c:90: attention : no previous prototype for «boucle"
main.c: In function «boucle":
main.c:92: attention : accolades manquantes autour de l'initialisation
main.c:92: attention : (near initialization for «dir[0]")
main.c:93: attention : declaration of «c" shadows a global declaration
main.c:13: attention : déclaration est masquée ici
main.c:100: erreur: implicit declaration of function «verif_combi2"
main.c:100: attention : nested extern declaration of «verif_combi2"
main.c:138: erreur: implicit declaration of function «no_solution"
main.c:138: attention : nested extern declaration of «no_solution"
main.c:147: erreur: implicit declaration of function «pause"
main.c:147: attention : nested extern declaration of «pause"
main.c: Hors de toute fonction :
main.c:154: attention : no previous prototype for «no_solution"
main.c: In function «no_solution":
main.c:164: erreur: «struct parcours" has no member named «y"
main.c:165: erreur: «struct parcours" has no member named «valy"
main.c:177: erreur: «struct parcours" has no member named «y"
main.c:177: erreur: «struct parcours" has no member named «valy"
main.c: Hors de toute fonction :
main.c:187: attention : no previous prototype for «verif_combi2"
main.c: In function «verif_combi2":
main.c:197: erreur: «struct parcours" has no member named «y"
main.c:198: erreur: «struct parcours" has no member named «valy"
main.c: Hors de toute fonction :
main.c:209: attention : no previous prototype for «init_combi"
main.c: In function «init_combi":
main.c:213: erreur: «struct parcours" has no member named «y"
main.c:215: erreur: «struct parcours" has no member named «valy"
main.c: Hors de toute fonction :
main.c:218: attention : function declaration isn"t a prototype
main.c:227: attention : function declaration isn"t a prototype
main.c: In function «main":
main.c:229: attention : accolades manquantes autour de l'initialisation
main.c:229: attention : (near initialization for «pos[0]")
main.c:230: attention : accolades manquantes autour de l'initialisation
main.c:230: attention : (near initialization for «erreur[0]")
main.c:231: attention : accolades manquantes autour de l'initialisation
main.c:231: attention : (near initialization for «chemin[0]")
main.c:230: attention : unused variable «erreur"
main.c:229: attention : unused variable «pos"
Hors ligne
#7 Le 26/04/2008, à 12:42
- |3uddha
Re : Probleme du Cavalier Euler - C
Je te prie de m'excuser, j'ai refait l'opération en copiant collant tout le code, j'ai voulu enlever quelques fonctions superflues, pas autant que ca finalement.
Merci de ta persevérance
Hors ligne
#8 Le 26/04/2008, à 13:03
- nicolas.sitbon
Re : Probleme du Cavalier Euler - C
Je te prie de m'excuser, j'ai refait l'opération en copiant collant tout le code, j'ai voulu enlever quelques fonctions superflues, pas autant que ca finalement.
Merci de ta persevérance
c'est un peu mieux :
main.c:17: attention : no previous prototype for «affiche"
main.c:40: attention : no previous prototype for «appartenir"
main.c:47: attention : no previous prototype for «nbr_cases"
main.c:61: attention : no previous prototype for «max"
main.c:78: attention : no previous prototype for «init"
main.c:90: attention : no previous prototype for «boucle"
main.c: In function «boucle":
main.c:92: attention : accolades manquantes autour de l'initialisation
main.c:92: attention : (near initialization for «dir[0]")
main.c:93: attention : declaration of «c" shadows a global declaration
main.c:13: attention : déclaration est masquée ici
main.c:100: erreur: implicit declaration of function «verif_combi2"
main.c:100: attention : nested extern declaration of «verif_combi2"
main.c:138: erreur: implicit declaration of function «no_solution"
main.c:138: attention : nested extern declaration of «no_solution"
main.c:147: erreur: implicit declaration of function «pause"
main.c:147: attention : nested extern declaration of «pause"
main.c: Hors de toute fonction :
main.c:154: attention : no previous prototype for «no_solution"
main.c:187: attention : no previous prototype for «verif_combi2"
main.c:209: attention : no previous prototype for «init_combi"
main.c:218: attention : function declaration isn"t a prototype
main.c:227: attention : function declaration isn"t a prototype
main.c: In function «main":
main.c:229: attention : accolades manquantes autour de l'initialisation
main.c:229: attention : (near initialization for «pos[0]")
main.c:230: attention : accolades manquantes autour de l'initialisation
main.c:230: attention : (near initialization for «erreur[0]")
main.c:231: attention : accolades manquantes autour de l'initialisation
main.c:231: attention : (near initialization for «chemin[0]")
main.c:230: attention : unused variable «erreur"
main.c:229: attention : unused variable «pos"
Hors ligne
#9 Le 26/04/2008, à 13:14
- |3uddha
Re : Probleme du Cavalier Euler - C
Ok...Then.. Avant qu'on ne commence a me traiter de tous les noms, j'aurais a dier pour ma defense que..Aucune Excuse, Lamentable, Méprisable.
Donc voici la derniere "version", je pense qu'elle fonctionne.
Nb:comme j'utilise scanf si ont veut rapidement arriver a la fin de l'execution, entrez un caractére non-numerique (sinon.. un truc comme 1000 affichages).
#include <stdio.h>
#include <stdlib.h>
#define N_CA 8 // a inclure dans un fichier.h
struct parcours{
int *x;
int valx;
int *y;
int valy;
};
typedef struct parcours parcours;
typedef struct parcours c[100000];
typedef int chessmap [N_CA][N_CA];
void affiche(chessmap map){
int i,j,a=0;
int repere=N_CA;
char repere_lettres= 'A';
for(i=7;i>=0;i--){
printf("\n%d ", repere); // Affichage des reperes numeriques
repere--;
for(j=0;j<N_CA;j++) // On affiche ligne par ligne
printf(" %3d",map[j][i]);
}
printf("\n ");
while(a<N_CA){ // Affichage des lettres
printf(" %c ",repere_lettres);
repere_lettres++;
a++;
}
printf("\n\n");
}
int appartenir(int j, int i){
if (j<8 && j>=0 && i<8 && i>=0)
return 1;
else
return 0;
}
int nbr_cases(chessmap dir){
int i,j,cpt;
cpt=0;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(dir[i][j]!=0)
cpt++;
}
}
return cpt;
}
int max(chessmap dir){
int *min,i,tmp,taille;
min=dir[0];
i=0;
tmp=0;
taille=N_CA * N_CA;
while(i++<taille){
if(tmp<*min)
tmp=*min;
min++;
}
return tmp;
}
void init(chessmap tab){
int i,j;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
tab[i][j]=0;
}
}
}
//fonction principale recursive
int boucle(int x, int y,chessmap chemin,int coup,c combi, int cpt){
int dir[8][8]={0};
int i,j,r,c;
c=1;
r=2;
/*les 8 directions de l'espace ou le cheval peut jouer */
if(appartenir(x+r,y+c) && chemin[x+r][y+c]==0 && verif_combi2(x,y,x+r,y+c,chemin,combi)==0)
dir[x+r][y+c]=1;
if(appartenir(x+r,y-c) && chemin[x+r][y-c]==0 && verif_combi2(x,y,x+r,y-c,chemin,combi)==0)
dir[x+r][y-c]=1;
if(appartenir(x-c,y+r) && chemin[x-c][y+r]==0 && verif_combi2(x,y,x-c,y+r,chemin,combi)==0)
dir[x-c][y+r]=1;
if(appartenir(x-c,y-r) && chemin[x-c][y-r]==0 && verif_combi2(x,y,x-c,y-r,chemin,combi)==0)
dir[x-c][y-r]=1;
if(appartenir(x-r,y+c) && chemin[x-r][y+c]==0 && verif_combi2(x,y,x-r,y+c,chemin,combi)==0)
dir[x-r][y+c]=1;
if(appartenir(x-r,y-c) && chemin[x-c][y-r]==0 && verif_combi2(x,y,x-c,y-r,chemin,combi)==0)
dir[x-r][y-c]=1;
if(appartenir(x+c,y+r) && chemin[x+c][y+r]==0 && verif_combi2(x,y,x+c,y+r,chemin,combi)==0)
dir[x+c][y+r]=1;
if(appartenir(x+c,y-r) && chemin[x+c][y-r]==0 && verif_combi2(x,y,x+c,y-r,chemin,combi)==0)
dir[x+c][y-r]=1;
if(coup<=1)
chemin[x][y]=1;
//no_solution
// if(!nbr_cases(dir))
// no_solution(chemin,coup,combi,cpt);
//sinon on joue sur la premiere case possible
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(i==7 && j==7)
return no_solution(chemin,coup,combi,cpt);
if(dir[i][j]==1 && chemin[i][j]==0 && !(verif_combi2(x,y,i,j,chemin,combi))){
printf("Tour numero : %d\n %d,%d",coup,i,j);
chemin[i][j]=coup++;
if(!nbr_cases(chemin)&& coup>3){
printf("Gaaaaaaaaaagner\n");
return 0;}
affiche(chemin);
pause();
return boucle(i,j,chemin,coup,combi,cpt);
}
}
}
}
int no_solution(chessmap chemin, int coup, c combi, int cpt){
int i,j,maxi;
printf("backtraaaaackkk\n"); //si aucune solution
maxi=max(chemin);
coup--;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(chemin[i][j]== maxi ){
combi[cpt].y=&chemin[i][j]; //on recueille l'adresse du dernier mvmt
combi[cpt].valy=chemin[i][j];
chemin[i][j]=0;// on supprime le dernier mvmt
}
}
}
maxi=max(chemin); // on reprend a partir de l'avant dernier
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(chemin[i][j]==maxi){
combi[cpt].x=&chemin[i][j];// on recueille l'adresse de l'avant dernier mvmt
combi[cpt].valx=chemin[i][j];
printf("mouvements incompatibles %p -> %p = %d -> %d\n",combi[cpt].x,combi[cpt].y,combi[cpt].valx,combi[cpt].valy);
cpt++; // les adresses deviennent incompatibles
return boucle(i,j,chemin,coup,combi,cpt);
}
}
}
}
// on parcourt l'ensemble des combinaisons, et on les compare ac ce qui va etre joue
int verif_combi2(int x, int y,int u, int v, chessmap chemin,c combi){
int i,*depart,*arrivee,valx,valy;
depart=&(chemin[x][y]);// depart
arrivee=&(chemin[u][v]);
valx=chemin[x][y];
valy=(valx+1) ;
for(i=0;i<100000;i++){
if(depart==combi[i].x && arrivee==combi[i].y){
if(valy==combi[i].valy && valx==combi[i].valx){
printf("depart:%p -> %p ; %d -> %d\n",depart,arrivee,valx,valy);
// printf("Match,combi.valx=%d et combi.valy=%d !!\n",combi[i].valx,combi[i].valy);
return 1;
}
}
}
return 0;
}
void init_combi(c combi){
int i;
for(i=0;i<100;i++){
combi[i].x=NULL;
combi[i].y=NULL;
combi[i].valx=0;
combi[i].valy=0; }
}
int pause(){
int continuer;
continuer=0;
printf("Continuer ?, Entrez 1\n");
scanf("%d",&continuer);
if(continuer==1)
return 1;
}
int main(){
int cpt=0;
chessmap pos={0};
chessmap erreur={0};
chessmap chemin={0};
//chemin[3][2]=34;
//chemin[1][2]=23;
c combi;
int coup=1;
int x,y;
x=0;
y=0;
// combi[1].x=&chemin[1][3];
//combi[1].y=&chemin[2][4];
// no_solution(erreur,pos,chemin,coup,combi,cpt);
// verif_combi2(1,3,2,4,chemin,combi);
//init_combi(combi);
boucle(x,y,chemin,coup,combi,cpt);
affiche(chemin);
return 0;
}
Dernière modification par |3uddha (Le 26/04/2008, à 13:18)
Hors ligne
#10 Le 28/04/2008, à 21:31
- Pygnol
Re : Probleme du Cavalier Euler - C
Salut,
Il reste encore quelques erreurs dont la plupart semblent faciles à corriger:
/home/thierry/devel/forums/ubuntu-fr/main.c|106|attention : accolades manquantes autour de l'initialisation|
/home/thierry/devel/forums/ubuntu-fr/main.c|106|attention : (near initialization for «dir[0]»)|
/home/thierry/devel/forums/ubuntu-fr/main.c|114|attention : déclaration implicite de la fonction « «verif_combi2» »|
/home/thierry/devel/forums/ubuntu-fr/main.c|154|attention : déclaration implicite de la fonction « «no_solution» »|
/home/thierry/devel/forums/ubuntu-fr/main.c|166|attention : déclaration implicite de la fonction « «pause» »|
/home/thierry/devel/forums/ubuntu-fr/main.c|203|attention : format «%p» expects type «void *», but argument 2 has type «int *»|
/home/thierry/devel/forums/ubuntu-fr/main.c|203|attention : format «%p» expects type «void *», but argument 3 has type «int *»|
/home/thierry/devel/forums/ubuntu-fr/main.c|229|attention : format «%p» expects type «void *», but argument 2 has type «int *»|
/home/thierry/devel/forums/ubuntu-fr/main.c|229|attention : format «%p» expects type «void *», but argument 3 has type «int *»|
/home/thierry/devel/forums/ubuntu-fr/main.c|252|attention : function declaration isn»t a prototype|
/home/thierry/devel/forums/ubuntu-fr/main.c|262|attention : function declaration isn»t a prototype|
/home/thierry/devel/forums/ubuntu-fr/main.c|264|attention : accolades manquantes autour de l'initialisation|
/home/thierry/devel/forums/ubuntu-fr/main.c|264|attention : (near initialization for «pos[0]»)|
/home/thierry/devel/forums/ubuntu-fr/main.c|265|attention : accolades manquantes autour de l'initialisation|
/home/thierry/devel/forums/ubuntu-fr/main.c|265|attention : (near initialization for «erreur[0]»)|
/home/thierry/devel/forums/ubuntu-fr/main.c|266|attention : accolades manquantes autour de l'initialisation|
/home/thierry/devel/forums/ubuntu-fr/main.c|266|attention : (near initialization for «chemin[0]»)|
/home/thierry/devel/forums/ubuntu-fr/main.c|265|attention : unused variable «erreur»|
/home/thierry/devel/forums/ubuntu-fr/main.c|264|attention : unused variable «pos»|
/home/thierry/devel/forums/ubuntu-fr/main.c|259|attention : control reaches end of non-void function|
/home/thierry/devel/forums/ubuntu-fr/main.c|209|attention : control reaches end of non-void function|
/home/thierry/devel/forums/ubuntu-fr/main.c|171|attention : control reaches end of non-void function|
||=== Build finished: 22 errors, 0 warnings ===|
Thierry
Hors ligne
#11 Le 30/04/2008, à 13:55
- |3uddha
Re : Probleme du Cavalier Euler - C
Ok merci, vu que je n'avais pas beaucoup de réponses et que en plus mon code était boiteux..j'ai tout refait et à présent ca marche.
Je remercie ceux qui ont participé à la discussion.
Cordialement.
nb:(Thierry d'habitude je compile pas avec les options -Wall, apparemment c'est mieux de le faire,mais là tu m' affiché a VIE,noobitor en puissance que je suis) ^^
Hors ligne