Ecrire un programme contenant les fonction suivantes:
a) Une fonction saisie qui a comme paramètres le nombre de lignes, nombre de colonnes et retourne le pointeur de la matrice; b) Une fonction affiche qui a comme paramètres le nombre de lignes, le nombre de colonnes et le pointeur de la matrice à afficher; c) Une fonction addition qui a comme paramètres le nombre de lignes, le nombre de colonnes, le pointeur de la première matrice et le pointeur de la deuxième matrice d) Appelez ces 3 fonctions dans votre programme principal 2) Exercice 2 Ecrire un programme qui permet: de stocker dans un fichier binaire des enregistrements des étudiants la saisie s'arrête lorsque l'utilisateur va saisir une valeur différente de 'o' l'enregistrement contient les champs suivants : nom(30), prenom(20) et le code qui est de type entier: Solutions: Exercice 1 #include <stdio.h> #include <stdlib.h> void affiche(int **mat,int n,int m){ int i,j; for(i=0;i<n;i++) for(j=0;j<m;j++) printf("la valeur [%d][%d]= %d\n ",i,j,*(*(mat+i)+j)); } int ** saisie(int n,int m){ int **mat,i,j; mat=(int**)malloc(n*sizeof(int *)); for (i=0;i<n;i++) *(mat+i)=(int *)malloc(m*sizeof(int)); for(i=0;i<n;i++) for(j=0;j<m;j++){ printf("entrez la valeur [%d][%d]= ",i,j);scanf("%d",*(mat+i)+j);} return mat; } int ** addition(int **p,int **q,int n,int m){ int **mat,i,j; mat=(int **) malloc(n*sizeof(int *)); for(i=0;i<n;i++) *(mat+i)=(int*) malloc(m*sizeof(int)); for(i=0;i<n;i++) for(j=0;j<m;j++) *(*(mat+i)+j)=*(*(p+i)+j)+*(*(q+i)+j); return mat; } int main(){ int **mat1,**mat2,**mat3,n,m; printf("entrez m:");scanf("%d",&m);printf("entrez n:");scanf("%d",&n); mat1=saisie(n,m); affiche(mat1,n,m); mat2=saisie(n,m); affiche(mat2,n,m); mat3=addition(mat1,mat2,n,m); printf(" addition est;\n"); affiche(mat3,n,m); return 0; } Exercice 2: #include <stdio.h> #include <stdlib.h> int main(){ int n;char ch='O',ch2='o'; int ch1=1; typedef struct { char nom[30]; char prenom[20]; int code; }Etudiant; Etudiant *e1,e2; FILE *f; f=fopen("etudiant.dat","wb"); if(f!=NULL){ //printf("nombre etudiant:"); //scanf("%d",&n); //e1=(Etudiant*) malloc(n*sizeof(Etudiant)); do{ printf("entrez le nom:"); scanf("%s",e2.nom); printf("entrez le prenom:"); scanf("%s",e2.prenom); printf("entrez le code:"); scanf("%d",&e2.code); fwrite(&e2,sizeof(Etudiant),1,f); printf("arretez la saisie O/N:"); scanf("%d",&ch1); scanf("%c", &ch2); }while(ch2=='o'); } fclose(f); f=fopen("etudiant.dat","rb"); if(f!=NULL){