Rechercher : dans
Par :

[C] copier un tableau

Dernière réponse le 9 fév 2008 à 13:41:38 limbergh, le 8 fév 2008 à 13:38:16 
 Signaler ce message aux modérateurs

Bonjour,

j'ai un code avec des foncstions, le but est de remplir un tableau, avec des chiffres, puis afficher,... et enfin
le copier dans un autre tableau.
Je ne vois pas comment faire, j'ai essayé avec une fonction et ça ne donne rien.

Si quelqu'un à une explications...
Merci d'avance

Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « [C] copier un tableau » dans :
Inverser les éléments d'un tableau -Récursivité- VoirVoici une procédure récursive qui permet d’inverser les éléments d’une partie d’un tableau compris entre la position p et n : Procedure Inverser (Var t : Tab; p, n : Integer); Var aux : Real; Begin If p < n Then ...
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
Les chaînes de caractères en C++ VoirQu'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...
Langage C - Les chaînes de caractères VoirQu'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 tableaux VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...

1

limbergh, le 8 fév 2008 à 13:38:56

Ps: voici le code

#include <stdio.h>
#include <stdlib.h>
#define tmax 5
//prototypages des fonctions
void affiche(long *tbis, long tmaxbis);
void encode(long *tbis, long tmaxbis);
void somme(long *tbis, long tmaxbis);
void moyenne(long *tbis, long tmaxbis);
void copie(long *tbis, long *tbis2, long tmaxbis);

int main(int argc, char *argv[]) 
{
//déclarations des variables
long t[tmax]={0};
long t2[tmax]={0};

encode(t,tmax);
affiche(t, tmax);
somme(t, tmax);
moyenne(t, tmax);
copie(t,t2, tmax);
 
system("PAUSE");
    return 0;
}

/*fonction affichage*/
void affiche(long *tbis, long tmaxbis)
{
int ibis;
for (ibis=0; ibis<tmaxbis; ibis++)
{
printf("%ld\t", tbis[ibis]);
}
}

/*fonction encodage*/
void encode(long *tbis, long tmaxbis)
{
int ibis;
for (ibis=0; ibis<tmax; ibis++)
{
printf("entrez un nombre du tableau t [%d] :",ibis);
scanf("%ld", &tbis[ibis]);
}
}

void somme(long *tbis, long tmaxbis)
{
int ibis, s;
s=0;
for(ibis=0; ibis<tmaxbis; ibis++)

s=s+tbis[ibis];
printf("\nla somme des valeurs du tableau est : %d\n", s);

}

void moyenne(long *tbis, long tmaxbis)
{
int ibis, s , m;
s=0;
for(ibis=0; ibis<tmaxbis; ibis++)

s=s+tbis[ibis];
m=s/tmax;
printf("\nla moyenne des valeurs du tableau est : %d\n\n", m);
}

void copie(long *tbis, long *tbis2, long tmaxbis)
{
int ibis;
for (ibis=0;ibis<tmaxbis;ibis++)
tbis2[ibis]=tbis[ibis];

printf("valeurs de table 2 : %ld\n", tbis2[ibis]);
}

Répondre à limbergh

2

OrionS, le 8 fév 2008 à 13:40:17

De quel langage parlons nous?
peux tu nous en dire un peu plus

Répondre à OrionS

3

limbergh, le 8 fév 2008 à 13:45:49

Ben oui, j'oublie le plus important...
C'est du langage C

Répondre à limbergh

4

OrionS, le 8 fév 2008 à 13:50:21

Tu peux utiliser la fonction memcpy()

#include <string.h>

int Tab1[10], Tab2[10];

memcpy(Tab2, Tab1, sizeof Tab2);

Répondre à OrionS

5

limbergh, le 8 fév 2008 à 13:53:27

Re,
à quoi sert le sizeof? et memcpy?
Je connais strcpy, quelle est la différence?

Merci d'avance pour tes axplications

Répondre à limbergh

6

OrionS, le 8 fév 2008 à 13:57:21

La fontion strcpy c'est pour copier un chaine dans un autre tandi que memcpy admet trois paramètres, le premier étant le tableau de destination et le deuxième le tableau source. Enfin, le troisième est le nombre d'octets à copier...

Répondre à OrionS

11

fiddy, le 9 fév 2008 à 02:20:34
  • +1

Salut,
Tu confonds memcpy strncpy.
memcpy(void *dest, const void *src, size_t n) et strcpy(char *dest, const char *src, size_t n);

memcpy permet de copier des octets depuis la zone mémoire.
Google is your friend

Répondre à fiddy

7

limbergh, le 8 fév 2008 à 13:59:47

Ok,
merci pour tes explications, mais pour la fonction copie que j'ai crée, tu ne sais pas
m'expliquer mon erreur de copie avec les pointeurs?

Répondre à limbergh

8

limbergh, le 8 fév 2008 à 15:20:12

Vraiment personne pour m'expliquer?????

Répondre à limbergh

9

limbergh, le 9 fév 2008 à 01:45:32
  • +1

On ne sait jamais, quelqu'un qui veille la nuit?????
J'ai toujours pas trouvé mon erreur....


Merci d'avance

Répondre à limbergh

10

fiddy, le 9 fév 2008 à 02:07:46
  • +1

Salut,

Il n'y a pas d'erreur de copie, ça marche très bien.
Cependant, il serait mieux de faire :

void copie(long *tbis, long *tbis2, long tmaxbis)
{
int ibis;
for (ibis=0;ibis<tmaxbis;ibis++){
   tbis2[ibis]=tbis[ibis];

    printf("valeurs de table 2 : %ld\n", tbis2[ibis]);
  }
}

Sinon tu n'afficheras qu'une valeur de ta table tbis2
Google is your friend

Répondre à fiddy

12

limbergh, le 9 fév 2008 à 13:40:40
  • +1

Salut,
merci poour ta réponse...

Répondre à limbergh

13

 limbergh, le 9 fév 2008 à 13:41:38
  • +2

Salut,
merci poour ta réponse

Répondre à limbergh