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

Résolu/Fermé
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 - 29 déc. 2008 à 18:01
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 29 déc. 2008 à 20:41
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 1278 Date d'inscription lundi 15 décembre 2008 Statut Contributeur Dernière intervention 10 décembre 2009 255
29 déc. 2008 à 18:06
salut !

essaye des %i au lieu de tous les %d !
0
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
29 déc. 2008 à 18:24
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
29 déc. 2008 à 19:00
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 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
29 déc. 2008 à 19:29
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
29 déc. 2008 à 19:00
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 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
29 déc. 2008 à 19:34
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 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
29 déc. 2008 à 19:37
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
29 déc. 2008 à 20:41
Salut,
Pour memset :
memset(tab,0,sizeof **tab * n*m);

Cdlt
0