Rechercher : dans
Par :

[langage c]matrice et fonction

Dernière réponse le 29 avr 2009 à 18:25:09 lxav, le 8 jun 2007 à 20:50:52 
 Signaler ce message aux modérateurs

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 ;)

Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « [langage c]matrice et fonction » dans :
Langage C - Les chaînes de caractères Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Langage C - Les fonctions Voir La notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Langage C++ - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Les classes en langage C++ VoirLa notion d'objet Le langage C est un langage procédural, c'est-à-dire que c'est un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions. L'apport principal du langage C++ par rapport au...

1

fiddy, le 8 jun 2007 à 21:26:26

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
Google is your friend

Répondre à fiddy

5

ekra, le 9 jun 2007 à 18:41:00

Bonjour,

void FCT(int tab[5][], int nb);
C'est plutôt

void FCT(int tab[][10],int nb);
Ceci est une signature.

Répondre à ekra

2

lxav, le 8 jun 2007 à 21:32:55

Merci a toi
et la déclaration dans le programme principal?

Répondre à lxav

3

fiddy, le 8 jun 2007 à 23:19:07

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*/
Google is your friend

Répondre à fiddy

4

lxav, le 9 jun 2007 à 16:02:38

Je voulais dire la déclaration de la fonction.... pas d'une matrice ;)

Répondre à lxav

6

ekra, le 9 jun 2007 à 18:48:12

Il n'y a pas de déclaration dans le programme principal. Tu parles peut-être de l'appel de la fonction ?

FTC(x,nb);

Mais bon le plus simple et le plus efficace est une structure. Ceci est une signature.

Répondre à ekra

7

metalsephiroth, le 7 jan 2008 à 23:04:36

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));
}
}
}

Répondre à metalsephiroth

8

fiddy, le 8 jan 2008 à 00:58:06

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
Google is your friend

Répondre à fiddy

9

 eve, le 29 avr 2009 à 18:25:09

Bonjour;
je voudrais savoir comment écrire une matrice incidente en c

Répondre à eve