[langage c]matrice et fonction
lxav
Messages postés
189
Statut
Membre
-
Uluqiorra -
Uluqiorra -
Bonjour,
je voudrais savoir comment déclarer une matrice que je veux envoyer dans une fonction.
par exemple pour un vecteur....
on déclare dans le programme principal....
main()
{
int x[21],nb=0;
void FCT(int*,int);
.
.
.
//.... puis on l'utilise en ecrivant
FCT(x,nb);
}
..... et on la code...
void FCT(int x[],int nb)
{
......
}
mais si j'utilise
int x[5][21],nb;
comment puis envoyer totalement la matrice dans la fonction?
( le code en bref)
Merci d'avance ;)
je voudrais savoir comment déclarer une matrice que je veux envoyer dans une fonction.
par exemple pour un vecteur....
on déclare dans le programme principal....
main()
{
int x[21],nb=0;
void FCT(int*,int);
.
.
.
//.... puis on l'utilise en ecrivant
FCT(x,nb);
}
..... et on la code...
void FCT(int x[],int nb)
{
......
}
mais si j'utilise
int x[5][21],nb;
comment puis envoyer totalement la matrice dans la fonction?
( le code en bref)
Merci d'avance ;)
Configuration: Windows XP Firefox 2.0.0.4
7 réponses
-
Salut
int tab[5][10];
void FCT(int tab[5][10],int nb){
}
ou void FCT(int tab[5][], int nb){
}
et l'appel : FCT(tab,nb);
Mais surtout pas : void FCT(int tab[][],int nb);
Il faut aider le compilateur à savoir le nombre de cases qu'il faut se déplacer pour changer de lignes.
Si tu veux plus d'explications, n'hésite pas à demander
-
-
merci a toi
et la déclaration dans le programme principal? -
Re
int tab[5][10]={{0,1,2,3,4,5,6,7,8,9}, {1,2,3,4,5,...}, {4,5,6,...}}; ou tab[3][1]=15; /*pour accéder à une seule case*/ -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
je voulais dire la déclaration de la fonction.... pas d'une matrice ;)
-
Bonsoir, je tente dans le cadre d'un TP de programation en C d'appeller la fonction suivante mais je ne parviens pas a compiler.
D'où provient l'erreur ?
merci d'avance pour vos reponses.
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define N1=3
#define N2=3
//void encodMat1(int*);
int main(int argc, char *argv[])
{
// printf("", );
//encodMat1(mat1);
return 0;
}
//Remplissage de la premiere matrice--------------------------------------------
void encodMat1(int *mat)
{
int i,j;
printf("Encodez les elements de la premiere matrice :\n");
for (i=0;i<N1;i++)
{
for (j=0;j<N2;j++)
{
printf("ligne %d, colonne %d : ",i+1,j+1);
scanf("%3d",(mat+i*N1+j));
}
}
} -
Salut
#define N1 3 au lieu de #define N1=3
#define N2 3 au lieu de #define N2=3
#define CONSTANTE CHAINE remplacera avant la compilation l'occurence CONSTANTE par CHAINE, donc dans ton cas, cela remplecera N1 par =3 d'où l'erreur de compilation.
Cordialement