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
|
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
//#include <string.h>
float** Allocate_Mat_Memory(int N, int M);
void genere_mat( float **A, int N, int M );
void Affiche_Mat( float **A, int N, int M );
float** decal_haut(float **Mat, int N, int M);
int main()
{
int dim1, dim2;
float **Mat, **A_dec_haut;
printf("\n Les dimensions de la matrice sont:\n");
printf("Nombre de lignes: ");
scanf("%d", &dim1);
printf("Nombre de colonnes: ");
scanf("%d", &dim2);
Mat=Allocate_Mat_Memory(dim1, dim2);
genere_mat(Mat, dim1, dim2);
printf("La Matrice est:\n\n");
Affiche_Mat( Mat, dim1, dim2 );
printf("La Matrice decalee vers le haut est:\n\n");
A_dec_haut = decal_haut(Mat, dim1, dim2);
Affiche_Mat( A_dec_haut, dim1, dim2 );
return 0;
}
float** Allocate_Mat_Memory(int N, int M)//Cette fonction permet d'allouer de la memoire pour une matrice qulquonque
{
int i;
float **A = NULL;
// On fait l'allocation de memoire pour un vecteur de N cases, C'est un vecteur de pointeurs
A = (float**) malloc( sizeof(float*) * N );
// Si l'allocation à réussi, On fait une allocation de M cases pour chaque ligne
if( A != NULL )
for( i=0; i<N; i++ )
A[i] = (float*) malloc( sizeof(float) * M );
return A;
}
void Affiche_Mat( float **A, int N, int M )// Affichage des éléments de la matrice
{
int i, j;
for(i=0; i<N; i++)
{
for(j=0; j<M; j++)
printf("%f\t", A[i][j]);
printf("\n");
}
}
void genere_mat( float **A, int N, int M )//genere les éléments de la matrice de façon aléatoire
{
int c,i, j;
c=255;
for( i=0; i<N; i++ )
for( j=0; j<M; j++ )
{
A[i][j]=rand()%c;
}
}
float** decal_haut(float **Mat, int N, int M)// decale les elements de la matrice vers le haut
{
int i, j;
float **Mat_dec_haut= NULL;
Mat_dec_haut = Allocate_Mat_Memory(N, M);
for( i=0; i<N; i++ )
{
for( j=0; j<M; j++ )
{
Mat_dec_haut[N-1][j] = 0; // initialisation de la dernière ligne
Mat_dec_haut[i][j] = Mat[i+1][j];
}
}
return Mat_dec_haut;
} |
Partager