[INF] projet en C

projet en C [INF] - Aide aux devoirs - Emploi & Etudes

Marsh Posté le 01-12-2011 à 11:14:16    

Bonjour à tous,
 
Je suis en premiere année de license, et pour la fin de mon semestre, je dois réaliser un projet qui est le tout noir tout blanc. Actuellement, il n'est pas sous forme graphique donc c'est que des 1 et des 0, et le probleme c'est qu'il y a quelques défauts et je n'sais pas pourquoi...Quand je choisi la taille du tableau , si je met 10x10, ça marche pas, il me semble que 7x7 non plus... alors que le reste fonctionne...donc si quelqu'un peut méclaircir...
 
voila le programme :  
 
#include <stdio.h>
 
 
#define N 100
#define NOIR 0
#define BLANC 1
 
void remplirTableau (int tab[N+2][N+2]) {
   int i;
   int j;  
   int c;
   int l;
 
printf("entrez le nombre de colonne : " );
scanf("%d", &c);
printf("entrez le nombre de ligne : " );
scanf("%d", &l);
 
 
for(i=0;i<=l-1;i++) {
   for(j=0;j<=c-1;j++) {
     tab[i][j]=NOIR;
   }
}
 
}
 
void afficherTableau (int tab[N+2][N+2]) {
   int i;
   int j;
   int c;
   int l;
 
 
for(i=0;i<=l-1;i++) {
    for(j=0;j<=c-1;j++) {
      printf(" %d ", tab[i][j]);
    }
     printf("\n" );
}
 
}
 
 
void clictab(int tab[N+2][N+2]) { /*clictab=clique sur le tableau graphique*/
   int ligne;  
   int colonne;
   int i,j;
   int c,l;  
 
 
printf ("une ligne ? " );
scanf("%d", &ligne);
printf("une colonne ? " );
scanf("%d", &colonne);
 
for(i=0;i<=l-1;i++) {
   for(j=0;j<=c-1;j++) {
     if (tab[ligne-1][colonne-1] == NOIR) {
        tab[ligne-1][colonne-1]=BLANC;
        tab[ligne-2][colonne-1]=BLANC;
        tab[ligne][colonne-1]=BLANC;
        tab[ligne-1][colonne-2]=BLANC;
        tab[ligne-1][colonne]=BLANC;
     }
     else {
        tab[ligne-1][colonne-1]=NOIR;  
        tab[ligne-2][colonne-1]=NOIR;
        tab[ligne][colonne-1]=NOIR;
        tab[ligne-1][colonne-2]=NOIR;
       tab[ligne-1][colonne]=NOIR;
    }
   }
 }
}
 
int main (void) {
   int tab[N+2][N+2];
   int i,j,l,c;
 
remplirTableau(tab);
afficherTableau(tab);
 
for(i=0;i<=l-1;i++) {
    for(j=0;j<=c-1;j++) {
     if(tab[i][j]==NOIR) {
            clictab(tab);
            afficherTableau(tab);
     }
    }
 }
return 0;
 
}
 
 
voila, j'espere que quelqu'un pourra m'aider

Reply

Marsh Posté le 01-12-2011 à 11:14:16   

Reply

Marsh Posté le 03-12-2011 à 21:43:47    

personne ?

Reply

Marsh Posté le 03-12-2011 à 23:03:38    

Je ne sais pas quel IDE tu utilises, mais celui-ci intègre certainement un débogueur, donc utilise le.
Met des breakpoints aux endroit clés, lance le programme en mode debug et utilises l'explorateur de variable, le traceur de pile d'appel pas à pas pour voir là ou ça coince.

Reply

Marsh Posté le 04-12-2011 à 10:05:44    


Après un rapide coup d’œil à ton code , on voit qu'il y a encore beaucoup de boulot, faut vraiment que tu revois toutes les bases de la programmation (notamment les notions de variables locales, globales).
 
Pourquoi redéfinir en variables locales dans toutes tes fonctions les variables l et c ?

Reply

Marsh Posté le 04-12-2011 à 19:47:37    

1/ C'est pas la bonne catégorie, va en cat Programmation
2/ Utilise la balise [ code] [ /  code]
3/ La fonction clictab utilise les variables l et c non initialisées, ca va donner des résultats amusants ...
4/ ...etc..

Reply

Marsh Posté le 22-12-2011 à 10:48:10    

La chose qui choque le plus dans ton code c'est ton absence totale d'assignation de variable
 

Code :
  1. void clictab(int tab[N+2][N+2]) { /*clictab=clique sur le tableau graphique*/
  2.    int ligne; 
  3.    int colonne;
  4.    //Compteur boucle for (non obligatoire)
  5.    int i,j;
  6.    // Définition des variables de fin des for
  7.    int c,l; 
  8. printf ("une ligne ? " );
  9. scanf("%d", &ligne);
  10. printf("une colonne ? " );
  11. scanf("%d", &colonne);
  12. //Mais.... l et c n'ont pas de valeurs définis tu vas donc prendre la valeur de l'emplacement mémoire "aléatoire" pour ces variables (incohérent au passage)
  13. for(i=0;i<=l-1;i++) {
  14.    for(j=0;j<=c-1;j++) {
  15.      if (tab[ligne-1][colonne-1] == NOIR) {
  16.         tab[ligne-1][colonne-1]=BLANC;
  17.         tab[ligne-2][colonne-1]=BLANC;
  18.         tab[ligne][colonne-1]=BLANC;
  19.         tab[ligne-1][colonne-2]=BLANC;
  20.         tab[ligne-1][colonne]=BLANC;
  21.      }
  22.      else {
  23.         tab[ligne-1][colonne-1]=NOIR; 
  24.         tab[ligne-2][colonne-1]=NOIR;
  25.         tab[ligne][colonne-1]=NOIR;
  26.         tab[ligne-1][colonne-2]=NOIR;
  27.        tab[ligne-1][colonne]=NOIR;
  28.     }
  29.    }
  30. }
  31. }


 
Je n'ai relevé que ça mais c'est une des plus grosses erreurs que j'ai vu.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed