begin process at 2012 05 29 14:57:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

passage en paramètre d'un tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

passage en paramètre d'un tableau

vendredi 10 avril 2009 à 18:20:52 | passage en paramètre d'un tableau

misterbobo

Bonjour, j'ai à programmer la fonction nouvelle génération d'un jeu de la vie dont les paramètres en entrés sont imposés. Je pense être arrivé à quelque chose d'assez correct mais je ne comprend pas pourquoi il ne peut pas compiler "Grille [i][j]". J'ai été voir les tutoriels, je ne vois pas mon erreur et je ne peux pas utiliser de pointeur sur Grille (imposé par l'énoncé). Merci de m'aider.

void JeuDeLaVie(unsigned char Grille[][], unsigned short int Dim, unsigned short int NbEtats){
int i, j, k, compteur, boucle;
for (boucle=0; boucle<NbEtats; boucle++) {
    for (i=0;i<Dim+1;i++){
        for (j=0;j<Dim+1;j++){
            if (Grille[i][j] == '*'){
            compteur = 0;
                for (k=i-1;i<i+2;k++){ 
                    if (Grille[k][j] == '*'){
                    compteur = compteur +1;
                    }
                }
                for (k=j-1;j<j+2;k++){
                    if (Grille[i][k] == '*'){
                    compteur = compteur +1;
                    }
                }
                if ((compteur -1 > 3) || (compteur -1 < 2)) {
                Grille[i][j] = ' ';
                }
                if (compteur -1 == 3) {
                Grille[i][j] = '*';
                }
            }          
            if (Grille[i][j] == ' '){
            compteur = 0;
                for (k=i-1;i<i+2;k++){
                    if (Grille[k][j] == '*'){
                    compteur = compteur +1;
                    }
                }
                for (k=j-1;j<j+2;k++){
                    if (Grille[i][k] == '*'){
                    compteur = compteur +1;
                    }  
                }
                if (compteur =! 3){
                Grille[i][j] = ' ';
                }
                if ((compteur == 3) || (compteur = 3)) {
                Grille[i][j] = '*';
                }
            }                                
        }
    }
}
  system("PAUSE"); 
}

vendredi 10 avril 2009 à 19:45:22 | Re : passage en paramètre d'un tableau

CptPingu

Administrateur CodeS-SourceS
Plusieurs erreurs:

> Unsigned char Grille[][]
Impossible, tu ne peux pas passer un tableau statique à double dimension, sans préciser au moins la deuxième dimension. En revanche, tu as le droit d'écrire: Unsigned char** Grille.

A noter que "Unsigned char** Grille" n'est pas tout à fait équivalent à "Unsigned char Grille[][]".

> for (i = 0; i < Dim + 1; i++)
Ca me semble étrange, mais n'ayant pas le reste du code, je ne sais pas si c'est correcte ou non.

> for (k = i - 1; i < i + 2; k++)
Ca c'est "space". Sachant que K commence à -1, alors cette condition sera toujours vraie, donc boucle infinie. i < i + 2, peut être simplifié en : 0 < 2. Surtout que i n'est jamais modifié...

Aprend à découper ton code en petites fonctions, tout faire d'une seule traite, c'est moche, inmaintenable, et conduis souvent à des erreurs. Quant au placement des accolades, je ne suis pas fan, mais ça c'est un choix tout à fait personnel.

vendredi 10 avril 2009 à 20:10:20 | Re : passage en paramètre d'un tableau

misterbobo

Merci de ta reponse, justement j'aimerais pouvoir utiliser **Grille mais l'énoncé donne la premiere ligne : « void JeuDeLaVie(unsigned char Grille[][], unsigned short int Dim, unsigned short int NbEtats) ».

Merci également d'avoir regarder le reste du programme en effet il y avait des boucles infinies suite à un mauvais copier-coller (k=i-1,k<i+2,k++) ... je precise que je ne m'occupe pas des limites de la grille pour l'instant.
samedi 11 avril 2009 à 00:50:27 | Re : passage en paramètre d'un tableau

CptPingu

Administrateur CodeS-SourceS
void JeuDeLaVie(unsigned char Grille[][])
{
}

int main(void)
{
  return 0;
}

Compiler avec: gcc -W -Wall -ansi -pedantic test.c
est.c:1: erreur: les éléments du tableau sont de type incomplet
test.c:1: attention : unused parameter 'Grille'

L'énoncé, doit être erroné, ce n'est juste pas possible.


Cette discussion est classée dans : grille, compteur, for, unsigned, if


Répondre à ce message

Sujets en rapport avec ce message

algorithmique de fonction rec [ par fs_fck_sarko ] bonjour tout le monde, est ce que quelquun pourai maider pour le calul de complexite d'un programme qui resout les sudoku ? En fait je voudrais trouve Problème en tête bitmap [ par piroman14 ] Slt tt le monde!Je rencontre un petit problème dans mon algorithme. En effet, je n'arrive pas à coder l'en-tête d'une image bitmap correctement. J'obt projet bataille navale problème!!! [ par krimoluv ] Bonsoir à tous,voila j'ai mon projet bataille navalle qui approche les 1900 lignes. Malheuresement je n'ai pas eu le resultat esconté car en compilant triangularisat [ par desco182 ] Salut a quiconque  sur le forum qui aimerait porter des corrections svp#include#include#include#include#define max 10float A[max][max], B[max], Problème compréhension du programme le compte est bon [ par echec ] Bonjour,Je cherchai un programme c++ sur internet qui permettait de calculer la solution du jeu le compte est bon, j'en est finalement trouvé un, mais Probleme : Sudoku en C [ par seth59222 ] Bonsoir, voila je suis actuellement en première année d'info, donc assez novice et je viens de créer ce petit bout de programme en C qui consiste a ré ce code ne marche pas?????????? [ par banak3181 ] s'il vous plait les gars je veux que quelqu'un me disent pourquoi ce code ne marche sur dev C++:#include #include #include #include # include<myconio. acceder aux éléments d' un unsigned char ** [ par ththththth ] Bonjour à tous !!!J'ai un petit probleme pour acceder aux éléments d'un unsigned char**.Un pti bout de code sera plus simple...unsigned char **t = (un Projet C Jeu d'echec [ par Hugo Dam ] Bonsoir, Je code actuellement un jeu d'echec. Celui ci compile bien mais lors de l'execution il m'affiche erreur de segmentation des lors que je fais retourner un tableau d'une fonction [ par momojamal ] Bonjour,je voudrais récupérer le tableau d'une fonction ici tab[5][5] afin de l'utiliser dans une autre fonction ainsi l'afficher.comment puis je fair


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales