0% ont trouvé ce document utile (0 vote)
56 vues15 pages

Exemples de programmes en C pour débutants

Le document contient 8 exercices de programmation en C sur des sujets variés comme les fonctions, les tableaux et les pointeurs. Chaque exercice présente du code source avec des commentaires pour résoudre un problème précis.

Transféré par

rebaiahmed244
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
56 vues15 pages

Exemples de programmes en C pour débutants

Le document contient 8 exercices de programmation en C sur des sujets variés comme les fonctions, les tableaux et les pointeurs. Chaque exercice présente du code source avec des commentaires pour résoudre un problème précis.

Transféré par

rebaiahmed244
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exercice 1

//a
#include <stdio.h>
void bonjour ( )
{printf("bonjour \n");}
void main ( )
{bonjour();}

//b
#include <stdio.h>
void bonjour ( )
{printf("bonjour \n");}
void coucou ( )
{bonjour();}
void main ( )
{coucou();}

Exercice 2
#include <stdio.h>
#include <stdlib.h>
float MOYENNE (float a, float b)
{
return((a+b)/2);
}
int main()
{ float a , b, moy;
printf("saisir deux nombres reels \n");
scanf("%f %f",&a,&b);
moy=MOYENNE(a,b);
printf("la moyenne arithmétique de %f et %f est %f", a, b, moy);
}
Exercice 3
#include <stdio.h>
float MIN( float A, float B)
{
if (A<B)
return A ;
else
return B;
}
float MAX( float A, float B)
{
if (A>B)
return A ;
else
return B;
}
int main( )
{
float W,X,Y,Z,Mx,Mn ;
printf("donner W, X, Y et Z");
scanf("%f %f %f %f",&W,&X,&Y,&Z);
Mx=MAX(MAX(W,X),MAX(Y,Z)) ;
Mn=MIN(MIN(W,X),MIN(Y,Z)) ;
printf("Le maximum de %f, %f, %f et %f est %f \n",W, X, Y, Z, Mx) ;
printf("Le minimum de %f, %f, %f et %f est %f \n",W, X, Y, Z, Mn) ;
return 0 ;
}
Exercice 4
#include <stdio.h>
#include <math.h>
float F(int x)
{
return (sin(x)+log(x)-sqrt(x));
}
int main( )
{
float tab[10] ;
int i ;
for(i=0 ;i<10 ;i++)
{
tab[i]=F(i+1) ;
printf("f(%d)= %f\n",i,tab[i]);
}
return 0;
}

Exercice 5
#include <stdio.h>
#include <stdlib.h>
float Somme (float *tab, int n)
{
float S=0 ;
int i;
for (i=0 ;i<n ;i++)
{S=S+*(tab+i);}
return S;
}
int main( )
{
float* t = NULL; // Ce pointeur va servir de tableau après l'appel du malloc
int n,i;

do{
printf("donner la dim du tableau");
scanf("%d",&n);
}while(n<1);
//allocation dynamique
t= (float*)malloc(n * sizeof(float));
for(i=0 ;i<n ;i++)
{
printf("Donnez T[%d]",i);
scanf("%f",t+i);
}
printf("Somme=%f",Somme(t, n));
return 0 ;
}

Exercice 6
//version 1
#include <stdio.h>
int testrec(int t [], int n, int i)
{ int res;
if (i==n-2)
{res =(t[i]<=t[i+1]);
return res;}
else
{ res =(t[i]<=t[i+1]);
if (res==1)
{testrec( t, n, i+1);}
else
{ return res; }
}
}
int main()
{ int t [50],n,i;
int res;
do{
printf("Dimension du tableau T (max.50) : ");
scanf("%d", &n );
}while(n>50 ||n<1);
for(i=0 ;i<n ;i++)
{
printf("Donnez t[%d]",i);
scanf("%f",&t[i]);
}
i=0;
res= testrec(t, n, i);
if (res==1)
{
printf("le tableau est trié");
}
else
{
printf("le tableau n est pas trié");
}
}
//version 2
#include <stdio.h>
#include <stdlib.h>
int testrec(int *t, int n, int i)
{ int res;
if (i==n-2)
{
res =(*(t+i)<=*(t+i+1));
return res;
}
else
{
res =(*(t+i)<=*(t+i+1));
if (res==1)
{testrec( t, n, i+1);}
else
{ return res; }
}
}
int main()
{
int* t = NULL; // Ce pointeur va servir de tableau après l'appel du malloc
int n,i;
int res;
do{
printf("donner la dim du tableau");
scanf("%d",&n);
}while(n<1);
//allocation dynamique
t= (int*)malloc(n * sizeof(int));
for(i=0 ;i<n ;i++)
{
printf("Donnez T[%d]",i);
scanf("%d",t+i);
}
i=0;
res= testrec(t, n, i);
if (res==1)
{ printf("le tableau est trié");}
else
{ printf("le tableau n est pas trié");}
}

Exercice 7
#include <stdio.h>
void maxmin(int *t, int N, int *admax, int *admin)
{
int i;
*admax=*t ;
*admin=*t;
for(i=1 ;i<N ;i++)
{
if (*(t+i)<*admin) *admin=*(t+i);
if (*(t+i)>*admax) *admax=*(t+i);
}
}
int main( )
{
int* V = NULL;
int N=20;
int i, max, min ;
V= (int*)malloc(N * sizeof(int));
for(i=0 ;i<N ;i++)
{
printf("Donnez V[%d]",i);
scanf("%d",V+i);
}
maxmin(V, N, &max, &min) ;
printf("max=%d\n",max);
printf("min=%d\n",min);
return 0 ;
}

Exercice 8
#include <stdio.h>
#include <math.h>
void Saisie(int *t, int n)
{
int i ;
for(i=0 ;i<n ;i++)
{
printf("Donner t[%d]:",i);
scanf("%d",t+i);
}
}
void Affiche(int *t, int n)
{
int i ;
for(i=0 ;i<n ;i++)
printf("t[%d]: %d",i,*(t+i));
printf("\n");
}
int Difference(int *t1, int *t2, int n)
{
int i, diff=0 ;
for(i=0 ;i<n ;i++)
{diff=diff+(abs(*(t1+i)-*(t2+i))) ;}
return diff;
}
int main( )
{
int * t1= NULL, * t2= NULL, n ;
do{
printf("donner la dim des tableaux");
scanf("%d",&n);
}while(n<1||n>100);
//allocation dynamique
t1= (int*)malloc(n * sizeof(int));
t2= (int*)malloc(n * sizeof(int));
printf("saisir le tableau t1");
Saisie(t1,n) ;
printf("saisir le tableau t2");
Saisie(t2,n) ;
printf("tableau t1");
Affiche(t1,n) ;
printf("tableau t2");
Affiche(t2,n) ;
printf("Difference = %d",Difference(t1,t2,n));
return 0 ;
}
Exercice 9
#include <stdio.h>
#include<math.h>
#include <stdlib.h>
int n;
int Saisie(int n,int max,int min)
{
do{
printf("saisir un entier compris entre %d et %d \n", min,max);
scanf("%d",&n);
}while(n<min||n>max);
return n;
}
void RemplirCroissant (int *t, int n)
{
int i;
printf("t[0] : ");
scanf("%d", t);
for (i=1; i<n; i++)
{
do
{printf("t[%d] : ",i);
scanf("%d", t+i);
}while(*(t+i)<*(t+i-1));
}
}

void RemplirDecroissant (int *t, int n)


{
int i;
printf("t[0] : ");
scanf("%d", t);
for (i=1; i<n; i++)
{
do
{printf("t[%d] : ",i);
scanf("%d", t+i);
}while(*(t+i)>*(t+i-1));
}
}
void AfficherTab (int *t, int n)
{
int i;
for (i=0; i<n; i++)
{
printf("t[%d]= %d \t ",i,*(t+i));
}
}

int Somme (int *t, int n)


{
int i,s=0;
for (i=0; i<n; i++)
{
s=s+*(t+i);
}
return s;
}
void Remplacer (int *t, int n, int x)
{
int i;
for (i=0; i<n; i++)
{
*(t+i)=pow(*(t+i),x);

}
}
void Fusion (int *t1, int n1, int *t2, int n2, int *t3)
{
int I1=0, I2=n2-1, I3=0;
while ((I1<n1) && (I2>=0))
{if(*(t1+I1)<*(t2+I2))
{
*(t3+I3)=*(t1+I1);
I3++;
I1++;
}
else
{
*(t3+I3)=*(t2+I2);
I3++;
I2--;
}}
/* Si IA ou IB sont arrivés à la fin de leur tableau, */
/* alors copier le reste de l'autre tableau. */
while (I1<n1)
{
*(t3+I3)=*(t1+I1);
I3++;
I1++;
}
while (I2>=0)
{
*(t3+I3)=*(t2+I2);
I3++;
I2--;
}
}
int main()
{
int * t1=NULL, *t2=NULL, *t3=NULL;
int n1,n2;
int t;
//saisie de la dim du tableau t1
printf("saisie de la dim du tableau t1 \n");
n1=Saisie(n1=0,100,1);
//saisie de la dim du tableau t2
printf("saisie de la dim du tableau t2 \n");
n2=Saisie(n2=0,100,1);

t1=(int*) malloc(n1 * sizeof(int));


t2= (int*) malloc(n2 * sizeof(int));

printf("saisie du tableau t1 par ordre croissant \n");


RemplirCroissant(t1,n1);

printf("saisie du tableau t2 par ordre decroissant \n");


RemplirDecroissant(t2,n2);
printf("tableau t1 \n");
AfficherTab(t1,n1);
printf("\n");

printf("tableau t2 \n");
AfficherTab(t2,n2);
printf("\n");

printf("la somme des elements du tableau t1 est %d \n", Somme(t1,n1));


printf("\n");
printf("la somme des elements du tableau t2 est %d \n", Somme(t2,n2));
printf("\n");
if (Somme(t1,n1)==Somme(t2,n2))
{
printf("les sommes calculées sont deux entiers égaux \n");
}
else {
printf("les sommes calculées ne sont pas deux entiers égaux \n");
}
do
{printf("saisir un entier t strictement positif \n");
scanf("%d",&t);
}while(t<=0);
Remplacer(t2,n2,t);
printf("tableau t2 apres l utlisation de la fonction remplacer avec t=%d \n",t);
AfficherTab(t2,n2);
printf("\n");

t3= (int*)malloc((n1+n2) * sizeof(int));


Fusion(t1, n1,t2,n2,t3);
printf("tableau t3 fusion t1 et t2 \n");
AfficherTab(t3,(n1+n2));
printf("\n");
}

Vous aimerez peut-être aussi