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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| #include <stdio.h>
#include <stdlib.h>
#define TAILLE 10
//Fonction d'initialisation de tableau a deux dimensions
void initialisation_tab(int **, int **, int *, int *);
//Fonction d'allocation memoire pour tableau
void allocation(int **, int **, int *, int *,int);
//Fonction de saisie des éléments d'un tableau
void donnees_tab(int **,int **, int *, int *);
//Fonction affichant les éléments d'un tableau
void affichage(int **,int **, int **, int **,int *, int *, int);
int main()
{
int nb_ligne,nb_colonne;
int **tab=NULL, **p1=NULL,**p2=NULL,**tab2=NULL;
int trans=0,mat=0;
initialisation_tab(tab,p1,&nb_ligne,&nb_colonne);
allocation(tab,p1,&nb_ligne,&nb_colonne,mat);
mat=1;
//création d'un tableau
allocation(tab2,p2,&nb_ligne,&nb_colonne,mat);
donnees_tab(tab,p1,&nb_ligne,&nb_colonne);
printf("\nAffichage avant inversion : \n");
affichage(tab,p1,tab2,p1,&nb_ligne,&nb_colonne,trans);
free(tab);
free(tab2);
return 0;
}
void initialisation_tab(int **tab, int **p1, int *nb_ligne, int *nb_colonne)
{
do
{
printf("Veuillez entrer le nombre de ligne du tableau a 2 dimensions (maximum : %d) : ",TAILLE);
scanf("%d",nb_ligne);
}while((*nb_ligne<1)||(*nb_ligne>TAILLE));
do
{
printf("Veuillez entrer le nombre de colonne du tableau a 2 dimensions (maximum : %d) : ",TAILLE);
scanf("%d",nb_colonne);
}while((*nb_colonne<1)||(*nb_colonne>TAILLE));
}
void allocation(int **tab, int **p1, int *nb_ligne, int *nb_colonne,int mat)
{
int i, **tab2=NULL;
int nb_ligne_tmp, nb_colonne_tmp;
if(mat==1)
{
nb_ligne_tmp=*nb_ligne;
nb_colonne_tmp=*nb_colonne;
tab2=tab;
*nb_ligne=TAILLE;
*nb_colonne=TAILLE;
}
tab=(int **)malloc(*nb_ligne*sizeof(int *));
for(i=0; i<*nb_ligne; i++)
{
tab[i]=(int *)malloc(*nb_colonne*sizeof(int));
if ( tab == NULL)
{
exit(0);
}
}
*nb_ligne=nb_ligne_tmp;
*nb_colonne=nb_colonne_tmp;
}
void donnees_tab(int **tab,int **p1, int *nb_ligne, int *nb_colonne)
{
int i,j;
p1=tab;
printf("\nvaleur de nb_ligne=%d et de nb_colonne=%d\n",*nb_ligne,*nb_colonne);
for(i=0; i<(*nb_ligne); i++)
{
for(j=0; j<(*nb_colonne); j++)
{
printf("Veuillez entrez la valeur de l\'entier dans l\'emplacement tab[%d][%d] : ",i,j);
fflush(stdin);
scanf("%d",*(p1+i)+j);
}
}
}
void affichage(int **tab,int **p1, int **tab2, int **p2, int *nb_ligne, int *nb_colonne,int trans)
{
int i,j,aux;
p1=tab;
if(trans==1)
{
aux=*nb_ligne;
*nb_ligne=*nb_colonne;
*nb_colonne=aux;
p1=tab2;
}
for(i=0; i<*nb_ligne; i++)
{
for(j=0; j<*nb_colonne; j++)
{
printf("%3d",*(*(p1+i)+j));
}
printf("\n");
}
} |
Partager