EX1:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct complex {
double x,y ;
}complex;
double real (complex *z){
return (*z).x;
double imag (complex *z){
return (*z).y;
double abs(complex *z)
return sqrt((*z).x * (*z).x+ (*z).y * (*z).y);
complex mul(complex *z1, complex *z2){
complex result;
(result).x= (*z1).x* (*z2).x-(*z1).y* (*z2).y;
(result).y= (*z1).x* (*z2).y+(*z1).y* (*z2).x;
return result;
int main ()
complex result,z1,z2;
double abs1,abs2;
scanf("%lf %lf",&z1.x,&z1.y);
scanf("%lf %lf",&z2.x,&z2.y);
printf("multiplication: %.2lf + %.2lfi\nvaleurs absolus :\nabs1= %.2lf\tabs2= %.2lf ", mul(&z1,&z2).x, mul(&z1,&z2).y, abs(&z1), abs(&z2));
return 0;
}
EX2:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct panneau{
double l,L,e;
char type[20];
}panneau;
panneau saisie ( )
panneau P;
int code;
printf("entrer la largeur la longuer et l'epaisseur du panneau et le type:");
scanf("%lf %lf %lf %d", &P.l,&P.L,&P.e,&code);
switch (code){
case 0: strcpy(P.type,"PIN");
break;
case 1: strcpy(P.type, "CHENE");
break;
case 2: strcpy(P.type,"HETRE");
break;
default: strcpy(P.type,"INCONNU");
break;
return P;
void afficher (panneau P)
{ printf("le panneau P:\n");
printf("largeur: %lf\tlongueur: %lf\tepaisseur: %lf\ttype: %s\n",P.l,P.L,P.e,P.type);
double volume(panneau P){
double v= P.l*P.L*P.e ;
return v;
int main ()
{ panneau P;
P=saisie ();
afficher(P);
printf("v= %lf m", volume(P));
return 0;}
EX3:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Produit {
double prix;
int quantite, reference;
char type[20];
}Produit;
Produit saisie (){
int code;
Produit P;
printf("entrer mes données du produit: ");
scanf("%lf %d %d %d", &P.prix,&P.reference,&P.quantite,&code );
switch (code){
case 1: strcpy(P.type,"Carte mère");
break;
case 2: strcpy(P.type, "Processeur");
break;
case 3: strcpy(P.type,"Barète mémoire");
break;
case 4: strcpy(P.type, "carte graphique");
break;
default: strcpy(P.type,"INCONNU");
break;
return P;
void afficher (Produit P){
printf("le produit P:\n");
printf("prix: %lf\tréference: %d\tquantité: %d\ttype: %s\n", P.prix,P.reference,P.quantite,P.type);
void commande() {
Produit P ;
printf("donner la quantité : ");
scanf("%d",&P.quantite);
printf ("saisir le type du produit ( Processeur , Barète mémoire ...): ");
scanf("%s",P.type);
afficher(P);
int main ()
Produit P;
P=saisie ();
commande();
return 0;}
EX4:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct date {
char mois[13];
int jour, annee;
}date;
typedef struct employe {
char nom[15],prenom[15];
date dn , de;
}employe;
employe saisie (){
employe E;
printf("Nom: ");
fflush(stdin);
gets (E.nom);
printf("Prenom: ");
fflush(stdin);
gets(E.prenom);
printf("date de naissance: ");
scanf("%d %19s %d",&E.dn.jour,&E.dn.mois,&E.dn.annee);
printf("date d'embauche: ");
scanf("%d %19s %d",&E.de.jour,&E.de.mois,&E.de.annee);
return E;
void afficher (employe E){
printf("Nom: %s\tPrenom: %s\tdn: %d %s %d\tde: %d %s %d\n",E.nom,E.prenom,E.dn.jour,E.dn.mois,E.dn.annee,E.de.jour,E.de.mois,E.de.annee);
int main ()
employe E[4];
int i;
for (i=0;i<4;i++){
printf("entrer les donnees de %d employe\n", i+1);
E[i]=saisie();
for (i=0;i<4;i++)
printf("le %d employe :\n",i+1);
afficher(E[i]);
return 0;
}
EX5:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct etudiant {
char nom[15],prenom[15];
int CNE;
float notes[4], moyenne;
}etudiant;
etudiant saisie (){
etudiant E;
int i;
E.moyenne=0;
printf("Nom: ");
fflush(stdin);
gets (E.nom);
printf("Prenom: ");
fflush(stdin);
gets(E.prenom);
printf("CNE: ");
scanf("%d",&E.CNE);
for (i=0;i<4;i++){
printf("note %d: ",i+1);
scanf("%f",&E.notes[i]);
E.moyenne+=E.notes[i];
E.moyenne/=4;
return E;
void afficher (etudiant E){
int i;
printf("Nom: %s\tPrenom: %s\tmoyenne: %.2f\n",E.nom,E.prenom,E.moyenne);
for (i=0;i<4;i++)
printf("note[%d]: %.2f\n",i,E.notes[i]);
int main ()
{
etudiant E[5],x;
int i,j,max;
for (i=0;i<5;i++)
printf("entrer les donnees de %d etudiant\n", i+1);
E[i]=saisie();
for (i=0;i<4;i++)
max=i;
for (j=i+1;j<5;j++)
if(E[j].moyenne>E[max].moyenne)
max=j;
x=E[i];
E[i]=E[max];
E[max]=x;
for (i=0;i<5;i++)
printf("le %d etudiant: \n",i+1);
afficher (E[i]);
return 0;
}
EX6:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct nb_relationnel
int num,deno;
}nr;
nr saisie ()
nr N;
printf("entrer le num et le deno de votre nr: ");
scanf("%d %d",&N.num,&N.deno);
return N;
void afficher(nr N)
printf("%d/%d",N.num,N.deno);
nr multi(nr N1 , nr N2)
nr p;
p.num=N1.num*N2.num;
p.deno=N1.deno*N2.deno;
return p;
nr add(nr N1 , nr N2)
nr s;
if (N1.deno==N2.deno)
s.num=(N1.num)+(N2.num);
s.deno=N1.deno;
else
s.num=(N1.num*N2.deno)+(N2.num*N1.deno);
s.deno=N1.deno*N2.deno;
return s;
int main ()
{
nr N1,N2;
N1=saisie();
N2=saisie();
printf("N1= ");
afficher(N1);
printf("\tN2= ");
afficher(N2);
printf("\nS= ");
afficher(add(N1,N2));
printf("\tP= ");
afficher(multi(N1,N2));
return 0;
EX7:
#include <stdio.h>
#include <stdlib.h>
int Un(int n)
if (n==1)
return 1;
else
return Un(n-1)+n;
int main ()
int n;
scanf("%d",&n);
printf("la somme de Un= %d", Un(n));
return 0;
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int Un(int n)
if (n==1)
return 1;
else
return Un(pow(n-1,4))+pow(n,4);
}
int main ()
int n;
scanf("%d",&n);
printf("la somme de Un= %d", Un(n));
return 0;
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int fact(int n)
if (n==0)
return 1;
else
return n*fact(n-1);
float cos(int n , float x)
if (n==0 )
return 1;
else
return (pow(-1,n)*pow(x,2*n)/fact(2*n)) + cos(n-1,x) ;
int main ()
int n;
float x;
scanf("%d %f",&n,&x);
printf("Cos(%.2f)= %.2f",x,cos(n,x));
return 0;
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int fact(int n)
if (n==0)
return 1;
else
return n*fact(n-1);
float exp(int n , float x)
if (n==0 )
return 1;
else
return (pow(x,n)/fact(n)) + (n-1,x) ;
int main ()
int n;
float x;
scanf("%d %f",&n,&x);
printf("exp(%.2f)= %.2f",x,exp(n,x));
return 0;
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float Xn (int n , float x)
if (x==0 && n==0)
exit(-1);
else
if(x!=0)
if (n==0 )
return 1;
else
return Xn(n-1,x)*x ;
int main ()
{
int n;
float x;
scanf("%d %f",&n,&x);
printf("%.2f^%d= %.2f",x,n,Xn(n,x));
return 0;
EX8:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float p(int n , float x )
float A[n];
if (n==1)
return A[0];
else
return p(n-1,x)*x+((A[n])*x + A[n-1]);
int main ()
float x;
int i,n;
printf("n= ");
scanf("%d",&n);
printf("x= ");
scanf("%f",&x);
float A[n];
for (i=0;i<=n;i++)
printf("A[%d]= ",i);
scanf("%f",&A+i);
printf("A%d[%.2f]= %.2f",n,x,p(n,x));
return 0;
#include <stdio.h>
int ackermann(int m, int n) {
if (m == 0) {
return n + 1;
} else if (m > 0 && n == 0) {
return ackermann(m - 1, 1);
} else {
return ackermann(m - 1, ackermann(m, n - 1));
int main() {
int m, n;
printf("Entrez les valeurs de m et n pour la fonction d'Ackermann : ");
scanf("%d %d", &m, &n);
int result = ackermann(m, n);
printf("Ackermann(%d, %d) = %d\n", m, n, result);
return 0;
EX1:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ( )
FILE* f1;
FILE* f2;
FILE* f3;
FILE* f4;
char car,nom[20],prenom[20],ligne[100];
int i=0 , age;
f1=fopen("source.txt","wt+");
if (f1==NULL)
printf("ouverture impossible");
exit (0);
fprintf(f1,"nom prenom age\nAlaoui Ali 23\nFahmi Naima 20\nHasni Hassan 30\n");
f2=fopen("copie.txt","wt");
if (f2==NULL)
printf("ouverture impossible");
exit (0);
rewind(f1);
while (!feof(f1)) {
car = fgetc(f1);
fputc(car, f2);
i++;
printf("le nombre d'elements est : %d\n",i);
printf("donner le nouveau enregistrement: ");
scanf("%s %s %d",&nom,&prenom,&age);
fprintf(f1,"%s %s %d",nom,prenom,age);
f3=fopen("ajout.txt","wt");
if (f3==NULL)
printf("ouverture impossible");
exit (0);
rewind(f1);
while (!feof(f1))
car = fgetc(f1);
fputc(car, f3);
rewind(f1);
f4=fopen("temp.txt","wt+");
if (f4==NULL)
printf("ouverture impossible");
exit (0);
while (fgets(ligne, sizeof(ligne), f1) )
if (!strstr(ligne, "Hasni"))
{
fprintf(f4, "%s", ligne);
rewind(f4);
while (!feof(f4))
car = fgetc(f4);
printf ("%c",car);
fclose(f1);
fclose(f2);
fclose(f3);
fclose(f4);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ( )
FILE * f1;
int i;
char R[4],C[4],x;
f1=fopen("fichier.txt","wt+");
if (f1==NULL)
printf("ouverture echouee.");
exit(0);
printf("entrer 5 chaines de 3 caracteres: \n");
for(i=0;i<5;i++)
printf("entrer la %d chaine: ",i+1);
gets(C);
fprintf(f1,"%s\t",C);
rewind(f1);
while((x=fgetc(f1))!=EOF)
{
printf("%c",x);
printf("\najouter une chaine de 3 caracteres: ");
gets(C);
fprintf(f1,"%s",C);
rewind(f1);
while((x=fgetc(f1))!=EOF)
printf("%c",x);
rewind(f1);
printf("\ndonner une chaine a rechercher: ");
gets(R);
rewind(f1);
i=0;
while((x=fgetc(f1))!=EOF)
fscanf(f1,"%s",C);
if (strcmp(C,R)==0)
i++;
printf("la chaine existe");
break;
if(i==0)
printf("la chaine n'existe pas");
fclose(f1) ;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
FILE* f;
int i,n;
char c;
float T[n];
f=fopen("f.txt","rt");
if(f==NULL)
{
printf("ouverture echouee.");
exit(1);
if(fscanf(f,"%d",&n)==1)
for(i=0;i<n;i++)
fscanf(f,"%f",&T[i]);
printf("%.1f\t",T[i]);
fclose(f);
return 0;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
FILE *fp;
int i,x,T[3];
fp=fopen("f.txt","wb+");
if (fp==NULL){
printf("le fichier ne souvre pas");
exit(1);
for (i=0;i<3;i++) {
scanf("%d",&T[i]);
fwrite(T,sizeof(T[0]),3,fp);
rewind(fp);
while((fread(&x, sizeof(x), 1, fp) == 1))
printf("%d ",x);
fclose(fp);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int x,c=0,A[10],*p1,*p2;
for(p1 = A; p1 < A + 10 ; p1++)
scanf("%d",p1);
for (p1 = A; p1 < A + 10 ; p1++)
printf("%d ", *p1);
printf("\nentrer un entier : ");
scanf("%d",&x);
for(p1 = A , p2 = A ; p1 < A+10 ; p1++ )
if (*p1 != x)
*p2=*p1;
p2++;
c++;
for (p1 = A ; p1 < A + c; p1++)
printf("%d ", *p1);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int N,M,i,A[N+M],B[M],*pA,*pB;
printf("entrer N: ");
scanf("%d",&N);
printf("entrer M: ");
scanf("%d",&M);
for(i=0;i<N;i++)
printf("A[i]= ");
scanf("%d",&A[i]);
for(i=0;i<M;i++)
printf("B[i]= ");
scanf("%d",&B[i]);
for(pA=A+N,pB=B ; pA<A+N+M ; pA++)
*pA=*pB;
pB++;
for(pA=A;pA<A+N+M;pA++)
printf("%d\t",*pA);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int somme (int *T,int taille)
int i,s=0;
for(i=0;i<taille;i++)
s+=T[i];
return s;
int main(){
int N,i,T[N];
scanf("%d",&N);
for(i=0;i<N;i++)
printf("T[%d]= ",i+1);
scanf("%d",&T[i]);
printf("\n%d",somme(T,N));
return 0;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
int i,j,n,o=0;
char T[n+1];
printf("n= ");
scanf("%d",&n);
printf("T= ");
scanf("%s",T);
for (i=0,j=n-1;i<n;i++)
if (T[i]==T[j])
o++;
else
break;
j--;
}
if(o==n)
printf("ce mot est palindrome.");
else
printf("ce mot n'est pas palindrome.");
return 0;