Vous êtes sur la page 1sur 2

1) Exercice 1

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){

while(fread(&e2,sizeof(Etudiant),1,f)>0){// !feof(f)

//fread(&e2,sizeof(Etudiant),1,f); si vous utilisez l'autre condition !feof(f)


printf("%s..%s...%d\n",e2.nom,e2.prenom,e2.code);
}
}
fclose(f);
}

Vous aimerez peut-être aussi