Exercice pointeurs et fonctions
Bonjour,
j'ai un exercice sur les pointeurs et les fonctions
l'énoncé :
Citation:
Exercice 6
Ecrire un programme qui lit deux tableaux d'entiers t1 et t2 et leurs dimensions n1 et n2 au clavier et qui ajoute les éléments de B à la fin de A. Utiliser deux pointeurs p1 et p2 et afficher le tableau résultant t1.
j'ai essayé de le résoudre et j'ai fait un code or dans l'affichage il ne me donne qu'une seule case (alors que je veux le tableau concaténé) et son adresse (on veut le contenu) :
mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| #include<stdio.h>
#include<stdlib.h>
void saisie(int *n )
{
do
{
printf("donner un entier n" );
scanf("%d",n);}
while(n>20);
}
int remplir(int *t,int n)
{
int *p;
for(p=t;p<t+n;p++)
{
printf("donnerla case %d",p-t);
scanf("%d",p);
}
}
void concatiner(int *t,int *t1,int n,int n1)
{
int *p,*p2=t1;
for(p=t+n;p<t1+n1;p++,p2++)
{
*p=*p2;
}
n=n+n1;
}
void afficher (int *t,int n)
{
int *p,i;
for(p=t;p<t+n;p++)
printf("t[%d]=%d\n",p-t,*p);
}
void main()
{
int n,*t,n1,*t1;
saisie(&n);
t=(int*)malloc(n*sizeof(int));
remplir(t,n);
saisie(&n1);
t=(int*)malloc(n1*sizeof(int));
remplir (t1,n1);
concatiner(t,t1,n,n1);
afficher(t,n);
free(t);
free(t1);
} |