C: problème tableau a plusieurs dimension

Résolu/Fermé
bouskap Messages postés 68 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 18 mai 2010 - 1 mai 2009 à 12:04
bouskap Messages postés 68 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 18 mai 2010 - 1 mai 2009 à 16:32
Bonjour à tous,
Je fais appel à vous car je suis en train d'apprendre le C. je sais créer une fonction pour saisir les éléments d'un tableau à une dimension.
Malheureusement, je n'arrive pas a adapter cette fonction a un tableau a plusieur dimension.

mon tableau se présente de la façon suivante, (c'est pour ensuite faire des calculs de vecteur)

tab[numéro du vecteur][coordonnée]

exemple tab[0][0] 1ere coordonnée du premier vecteur
tab[0][1] 2eme coordonnée du premier vecteur
etc...

Je n'arrive pas a créer de fonction saisie pour remplir se tableau de tableau

en gros le principe que je veux faire, c'est appel de la fonction saisie dans le programme principale, et que cette fonction me renvoi le tableau rempli.

la fonction marchant comme ce ci
tab[i][j] on fait varier i de 0 aux nombre de vecteur et j de 0 aux nombres de coordonnée


Mon réel souci est de faire "rentrer" mon tableau dans la fonction.

d'avance merci

5 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
1 mai 2009 à 15:18
Dans ce cas :
#define LIG 50
#define COL 50

void remplissage(int tab[][COL]) {
      int i,j;
      for(i=0;i<LIG;i++)
          for(j=0;j<COL;j++) {
                printf("tab[%d][%d]=",i,j);
                scanf("%d",&tab[i][j]);
          }
}
Et pour l'appel : remplissage(tab);

Cdlt
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
1 mai 2009 à 13:21
Salut,
Quelle est la déclaration de ton tableau ?
int tab[LIG][COL], ou int **tab; avec les mallocs qui vont bien ?

Cdlt
0
bouskap Messages postés 68 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 18 mai 2010 9
1 mai 2009 à 15:11
j'ai fait ma déclaration comme ça: int tab[50][50]
0
bouskap Messages postés 68 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 18 mai 2010 9
1 mai 2009 à 15:15
#include<stdlib.h>
#include<stdio.h>
#include<math.h>

int nbrvec();
int nbrcoor();
void saisie (int,int,int *);

int main()
{
int vect[50][50];
/*
vect[numéro du vecteur][numéro de coordonnée]
exemple: vect[0][0] 1 ere coordonnée du vecteur 1
vect[0][1] 2 eme coordonnée du vecteur 1
vect[m-1][n-1] n eme coordonne du vecteur m
*/

int nbrvect, dimension;
/*
nbrvect => nombre de vecteur
dimension => nombre de coordonnée
*/

nbrvect=nbrvec();
dimension=nbrcoor();

saisie(nbrvect,dimension,vect[50][50]);


system("pause");
return 0;
}

int nbrvec()
{
int i;
printf("Entrez le nombre de vecteurs: ");
scanf("%d",&i);
i--;
return i;
}

int nbrcoor()
{
int j;
printf("Entrez le nombre de coordonnee par vecteurs: ");
scanf("%d",&j);
j--;
return j;
}

void saisie(int i, int j, int *tab[50][50])
{
int compt1, compt2;
for (compt1=0;compt1<i;compt1++)
{
printf("entrez :");
scanf("%d",&tab[compt1][compt1]);
}
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bouskap Messages postés 68 Date d'inscription dimanche 6 avril 2008 Statut Membre Dernière intervention 18 mai 2010 9
1 mai 2009 à 16:32
merci beaucoup
0