Projet en langage C tout simple qui bug -_-'

Résolu
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

voila, j'ai un projet en C à faire, et des le début j'ai un problème:
j'essaye de remplir un tableau avec des 0, sa marche si le tableau est petit, mais des qu'il est trop grand sa me met une fenetre comme quoi mon projet a cesser de fonctionner, et sa le ferme. Pourtant c'est vraiment tout simple.

Je vous joint le code, qui est vraiment tout petit (je code sous devC++):

#include <math.h>
#include <conio.h>
#include <stdio.h>

//debut: demande des informations
int main(){
//taille du tableau, case de depart de l'insecte ivre
int m, n, bugi, bugj, i, j, nbdeplacement = 0, x;
printf("entrez la taille tu tableau m et n :\n");
scanf("%d%d", &m, &n);
printf("entrez la position de depard du tableau( tableau de taille %d %d) :\n", m, n);
scanf("%d%d", &bugi, &bugj);
//création du tableau
int tab[m][n];
//initialisation des cellules a zero
for (i = 1; i <= m; i++){
for (j = 1; j <= n; j++){
tab[i][j]=0;
}
}
printf("1\n");
//placement de l'insecte
tab[bugi][bugj] = 1;
//lancement du trajet de l'insecte
//à faire
//choix de la nouvelle case:
//à faire
//affichage des resultats
for (i = 1; i <= m; i++){
for (j = 1; j <= n; j++){
printf("| %d ",tab[i][j]);
}
printf("| \n");
}
printf("nombre de deplacement: %d", nbdeplacement);
getch();
return 0;
}


merci de votre aide
A voir également:

5 réponses

HACKER 712 Messages postés 1282 Date d'inscription   Statut Contributeur Dernière intervention   255
 
salut !

essaye des %i au lieu de tous les %d !
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
sa ne change helas rien :s
sa bloque se niveau:

//initialisation des cellules a zero
for (i = 1; i <= m; i++){
for (j = 1; j <= n; j++){
tab[i][j]=0;
}
}

peut etre doit-je changer d'appli pour developer?
0
Romantic liar
 
essaie d'enlever le int devant le main() principal
puis vers la fin, efface le getch()
ça devrait corriger ton problème
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
si j'enlève le getch(), sa va fermer la fenêtre direct, j'aurais pas le temps de voir mon résultat
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Les tableaux en C commencent à l'indice 0 et non 1. Donc tu as déjà des problèmes à ce niveau.
Ensuite, tu as peut-être le coup de l'allocation dynamique (à voir suivant la norme que respect ton compilateur).
Sinon tu peux utiliser du memset pour initialiser tout un tableau à 0 et ne pas faire des boucles.
Cdlt
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
salut, j'ai essayé de 0 a n-1, sa fait toujours le meme probleme, et de toute façon sa marcherait pas avec n et m petit dans ce cas la. en revanche le memset m'interresse, mais comment l'utiliser?
j'ai regardé ici mais pas compris :s
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
autant pour moi fiddy, le problème venait bien de la ^^'

merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Pour memset :
memset(tab,0,sizeof **tab * n*m);

Cdlt
0