Exercices + solutions en langage C Serie 3



Exercice 1 :

Ecrire en C un programme qui range les 100 premiers nombres premiers dans un tableau.
Algorithme : Initialiser le tableau à 2, 3, 5, 7 puis générer la suite des nombres entiers
impairs, en testant pour chaque nombre s’il est divisible par l’un de ses prédécesseurs
premiers rangés dans le tableau et inférieur ou égal à Racine(n) (justifiez d’abord cet
algorithme).


Exercice 2 :

1) Faire une fonction int Factorielle (int n) qui revoie n!
2) Faire une fonction float Puissance (float x, int n) qui revoie xn
3) Faire une fonction float Exponentielle (float x, int n) 
qui calcule la valeur approchée de
en faisant appel aux fonctions Factorielle et Puissance.
4) Faire un programme d’appel de la fonction Exponentielle.


Exercice 3:

Un enseignant désire automatiser l’opération qui détermine la meilleure des trois notes des,
contrôles attribuées à ses étudiants. Proposer un programme qui permet à l’enseignant
d’introduire les trois notes et d’obtenir sur l’écran de l’ordinateur la plus grande des trois notes.

Correction:

Exercice 1 :

#include<stdio.h>
#include<stdlib.h>
#include <math.h>
#define MAXTAB 100
int main(int argc, char *argv[])
{
int i=4, j, n=9;
int premier[MAXTAB]={2,3,5,7,}; /*Déclaration et
initialisation du tableau*/
printf(" les 100 premiers nombres premiers sont:");
printf("2, 3, 5, 7,"); /* Affichage des 4 premiers nombres
premiers*/
do
{ j=0;
while ((n%premier[j]) &&(premier[j]<=sqrt(n)) && (j<i))
j++;
if (n%premier[j])
{
printf(" %d,",n);
premier[i++]=n;
}
n+=2;
} while (i<MAXTAB);
printf("\n");
system("PAUSE");
return 0;
}


Exercice 2 :

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
/* Définition de la fonction Factorielle*/
int Factorielle (int n)
{ int i;
long fact;
fact =1 ;
for(i=1;i<=n;i++)
fact =fact*i ;
return fact;
}
/* Définition de la fonction Puissance*/
float Puissance (float x, int n)

{ int i;
float res;
res=1.0 ;
for(i=1;i<=n;i++)
res =res*x ;
return res ;
}
/* Définition de la fonction Exponentielle*/
float Exponentielle (float x, int n)
{ int i;
float expo;
expo =1.0 ;
for(i=1;i<=n;i++)
expo =expo+Puissance(x,i)/Factorielle(i) ;
return expo;
}
/* Le programme principale*/
int main(int argc, char *argv[])
{ float x;
int n;
printf("Introduire n et x:");
scanf("%d %f ",&n,&x);
printf("l'exponentielle est: %f",Exponentielle(x,n));
system("PAUSE");
return 0;
}


Exercice 3:

#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{ float Note1, Note2, Note3;
float NoteMax;
printf("Introduire les trois notes :");
scanf("%f %f %f", &Note1, &Note2, &Note3);
if (Note1>Note2)
NoteMax=Note1;
else
NoteMax=Note2;
if (Note3>NoteMax)
NoteMax=Note3;
printf("la plus grande des trois notes est %f\n", NoteMax);
system("PAUSE");
return 0;
}

2 commentaires: