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

[Résolu/Fermé]
Signaler
Messages postés
3255
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
-
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
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

5 réponses

Messages postés
1278
Date d'inscription
lundi 15 décembre 2008
Statut
Contributeur
Dernière intervention
10 décembre 2009
254
salut !

essaye des %i au lieu de tous les %d !
Messages postés
3255
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
607
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?

essaie d'enlever le int devant le main() principal
puis vers la fin, efface le getch()
ça devrait corriger ton problème
Messages postés
3255
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
607
si j'enlève le getch(), sa va fermer la fenêtre direct, j'aurais pas le temps de voir mon résultat
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 785
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
Messages postés
3255
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
607
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
Messages postés
3255
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
607
autant pour moi fiddy, le problème venait bien de la ^^'

merci beaucoup
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 785
Salut,
Pour memset :
memset(tab,0,sizeof **tab * n*m);

Cdlt