Vous êtes sur la page 1sur 15

45

ENSAM - RABAT 22-23. TD 1 /TP 1 : langage C


Dep. Math. Info.✍ (I/O & structure-conditionnelle) Info 3
2API

1 Exercice 1
① Prévoyez le résultat que l’ordinateur va donner en exécutant les ordres suivants:
>>> 1 > 2 >>> i = 2
>>> 3.0 / 2 >>> i = i + 4
>>> 3 / 2 >>> printf("%d", i )
>>> 3 % 2 >>> j = 5
>>> 3 / 2.0 >>> i > j
>>> 3.0 / 2.0 >>> i != 9
>>> i == 9

Cas 1 printf("%d", 3 == 3 ) Cas 3 a=15


printf("%d", 3 != 3 ) printf("%d", a>5 || a<10)
printf("%d", 3 >= 4 ) Cas 4 a=15
printf("%d", !(3<4) ) printf("%d",a<5 && a>10)

② Faites exécuter par l’ordinateur ces commandes et observez le résultat. Avez-vous obtenu le
résultat souhaité? Si non, essayez d’expliquer le résultat obtenu.

2 Exercice 2
On suppose que a, b et c sont trois variables contenant des nombres entiers. Quel sera le
résultat des opérations suivantes :
>>> a = a + b + c
>>> b = a - b - c
>>> c = a - b - c
>>> a = a - b - c
Vérifiez votre réponse sur les valeurs a = 1 b = 2 et c = 3.

3 Exercice 3
Soient les déclarations suivantes : int i=2,j;
① Écrire un programme qui affiche les valeurs et les adresses sous format hexadécimal de ces
variables ?
1 # include < stdio .h >
2 # include < stdlib .h >
3 int main ()
4 {
5 int i =2 , j ;
6 printf ( " La ␣ valeur ␣ de ␣ i ␣ est ␣ : ␣ % d ␣ situe ␣ au ␣ memoire ␣ a ␣ l ’ adresse ␣ % x ␣ \ n " ,i ,& i
7 printf ( " La ␣ valeur ␣ de ␣ j ␣ est ␣ : ␣ % d ␣ situe ␣ au ␣ memoire ␣ a ␣ l ’ adresse ␣ % x ␣ \ n " ,j ,& j
8 return 0;
9 }
indication : on utilise le format %x pour afficher une variable en hexadécimal.

Page 1
② Écrire un programme qui lit un caractère au clavier et affiche le caractère ainsi que son code
numérique (code ASCII).
1 # include < stdio .h >
2 # include < stdlib .h >
3 int main ()
4 {
5 char x ;
6 printf ( " ␣ Saisir ␣ un ␣ caractere ␣ : " );
7 scanf ( " % c " ,& x );
8 printf ( " Le ␣ caractere ␣ est ␣ : ␣ ’% c ’␣ et ␣ son ␣ code ␣ ASCII ␣ est ␣ % d \ n " ,x , x );
9 return 0;
10 }

4 Exercice 4
Écrire un programme permettant de lire la température exprimée en degré Celsius de la con-
sole, la convertit en Fahrenheit et affiche le résultat.
N.B : La formule utilisée pour la conversion est la suivante :
9
f ahrenheit = × celsius + 32.
5
1 # include < stdio .h >
2 # include < stdlib .h >
3 int main ()
4 {
5 int T , F ;
6 printf ( " ␣ Saisir ␣ la ␣ temperature ␣ en ␣ Celsius ␣ : " );
7 scanf ( " % d " ,& T );
8 F =9/5* T +32;
9 printf ( " ␣ % d ␣ Celsius ␣ vaut ␣ % d ␣ en ␣ Fahrenheit ␣ \ n " ,T , F );
10 return 0;
11 }

5 Exercice 5
Écrire un programme permettant de calculer la distance entre deux points A( x A , y A ) et B( x B , y B )
dont les coordonnées sont saisies au clavier.
1 # include < stdio .h >
2 # include < stdlib .h >
3 # include < math .h >
4 int main ()
5 {
6 double xa , ya , xb , yb , dist ;
7 printf ( " ␣ Donner ␣ Xa ␣ et ␣ Ya ␣ : ␣ " );
8 scanf ( " % lf ␣ % lf " ,& xa ,& ya );
9 printf ( " ␣ Donner ␣ Xb ␣ et ␣ Yb ␣ : ␣ " );
10 scanf ( " % lf ␣ % lf " ,& xb ,& yb );
11 dist = sqrt (( xa - xb )*( xa - xb )+( ya - yb )*( ya - yb ));
12 printf ( " La ␣ distance ␣ entre ␣ A (%.2 lf ,%.2 lf ) ␣ et ␣ B (%.2 lf ,%.2 lf ) ␣ est ␣ : ␣ %.2 lf ␣ \ n " ,
13 xa , ya , xb , yb , dist );
14 return 0;
15 }

Page 2
6 Exercice 6
Écrire un programme qui fait la résolution des équations du premier degré de la forme :
ax + b = 0, a, b ∈ R.

1 # include < stdio .h >


2 # include < stdlib .h >
3 # include < math .h >
4 int main ()
5 {
6 float a , b ;
7 printf ( " ␣ Donner ␣ a ␣ et ␣ b ␣ : ␣ " );
8 scanf ( " % f ␣ % f " ,&a ,& b );
9 if ( a !=0)
10 printf ( " La ␣ solution ␣ est ␣ %.2 f " ,-b / a );
11 else if ( b ==0)
12 printf ( " La ␣ solution ␣ est ␣ IR " );
13 else
14 printf ( " pas ␣ de ␣ solution ␣ dans ␣ IR " );
15 return 0;
16 }

7 Exercice 7
Écrivez un programme qui lit deux valeurs entières (A et B) au clavier et qui affiche le signe
du produit de A et B sans faire la multiplication.
1 # include < stdio .h >
2 # include < stdlib .h >
3 int main ()
4 {
5 float a , b ;
6 printf ( " ␣ Donner ␣ a ␣ et ␣ b ␣ : ␣ " );
7 scanf ( " % f ␣ % f " ,&a ,& b );
8 if ( a ==0|| b ==0)
9 printf ( " Le ␣ produit ␣ est ␣ nul ␣ \ n ␣ " );
10 else if (( a >0 && b >0)||( a <0 && b <0))
11 printf ( " Le ␣ produit ␣ est ␣ positif ␣ \ n ␣ " );
12 else
13 printf ( " Le ␣ produit ␣ est ␣ negatif ␣ \ n ␣ " );
14 return 0;
15

16 }

8 Exercice 8
Sophie souhaite s’inscrire à des séances de natation. Le club de natation lui propose deux
types de tarification :
• Tarif A : Avec un abonnement annuel de 145dh et la séance coûte 9,80dh.
• Tarif B : Sans abonnement, la séance coûte 15,50dh.
Soit n le nombre de séances de natation suivies par Sophie durant l’année.
On fonction de ce paramètre, écrire un programme qui affiche le tarif le plus avantageux?

Page 3
1 # include < stdio .h >
2 # include < stdlib .h >
3 int main ()
4 {
5 int N ;
6 float TA , TB ;
7 printf ( " \ n ␣ Donner ␣ le ␣ nombre ␣ de ␣ Seance ␣ : ␣ " );
8 scanf ( " % d " ,& N );
9 TA =145+ N *9.8;
10 TB = N *15.5;
11 if ( TA < TB )
12 printf ( " La ␣ formule ␣ A ␣ est ␣ le ␣ plus ␣ avantageux " );
13 else
14 printf ( " La ␣ formule ␣ B ␣ est ␣ le ␣ plus ␣ avantageux " );
15 return 0;
16 }

9 Exercice 9
Écrire un programme qui fait la résolution dans R des équations du second degré de la forme
:
ax2 + bx + c = 0, a ∈ R∗ et b, c ∈ R.
1 # include < stdio .h >
2 # include < stdlib .h >
3 # include < math .h >
4 int main ()
5 {
6 float a ,b ,c , d ;
7 printf ( " \ n ␣ Donner ␣a , ␣ b ␣ et ␣ c ␣ : ␣ " );
8 scanf ( " % f ␣ % f ␣ % f " ,&a ,& b ,& c );
9 d = b *b -4* a * c ;
10 if (d >0)
11 printf ( " L ’ equation ␣ admet ␣ deux ␣ solutions ␣ %.2 f ␣ et ␣ %.2 f " ,( - b + sqrt ( d ))/(2* a
12 else if ( d ==0)
13 printf ( " L ’ equation ␣ admet ␣ une ␣ solution ␣ double ␣ %.2 f " ,( - b )/(2* a )) ;
14 else
15 printf ( " pas ␣ de ␣ solution ␣ dans ␣ IR " );
16 return 0;
17 }

10 Exercice 10
On désire écrire un algorithme qui permet d’afficher le jour correspondant à un chiffre allant
de 1 à 7, entré au clavier.
1 # include < stdio .h >
2 # include < stdlib .h >
3 int main ()
4 {
5 int n ;
6 printf ( " \ n ␣ Donner ␣ le ␣ numero ␣ du ␣ jour ␣ : ␣ " );
7 scanf ( " % d " ,& n );

Page 4
8 switch ( n ){
9 case 1: printf ( " Lundi " ); break ;
10 case 2: printf ( " Mardi " ); break ;
11 case 3: printf ( " Mercredi " ); break ;
12 case 4: printf ( " Jeudi " ); break ;
13 case 5: printf ( " Vendredi " ); break ;
14 case 6: printf ( " Samedi " ); break ;
15 case 7: printf ( " Dimanche " ); break ;
16 default : printf ( " \ n ␣ Ressayer ␣ avec ␣ un ␣ numero ␣ du ␣ jour ␣ valide ␣ entre ␣ 1 ␣ et ␣ 7 ␣ : ␣
17 }
18 return 0;
19 }

11 Exercice 11
Écrivez un programme pour saisir deux nombres de l’utilisateur et trouvez le maximum entre
les deux nombres en utilisant "switch case".
1 # include < stdio .h >
2 # include < stdlib .h >
3 int main ()
4 {
5 int a , b ;
6 printf ( " \ n ␣ Donner ␣ la ␣ valeur ␣ de ␣ a ␣ et ␣ b ␣ : ␣ " );
7 scanf ( " % d ␣ % d " ,&a ,& b );
8 switch (a > b ){
9 case 1: printf ( " % d ␣ est ␣ plus ␣ grand ␣ que ␣ % d " ,a , b ); break ;
10 case 0: printf ( " % d ␣ est ␣ plus ␣ grand ␣ que ␣ % d " ,b , a ); break ;
11 }
12 return 0;
13 }

Page 5
45
ENSAM - RABAT 22-23. TD 2 /TP 2 : langage C
Dep. Math. Info.✍ (Structures-répétitives) Informatique
Pr. M. JOHRI

12 Exercice 12
Quel résultat donnent les codes suivants ?

13 Exercice 13
① Écrire un programme qui calcule le reste de la division entière d’un entier positif A sur un
entier strictement positif B entrés par l’utilisateur sans utiliser les opérateurs "/" et "%".
1 # include < stdio .h >
2 main () {
3 int A ,B , q ;
4 printf ( " \ n ␣ donner ␣ A ␣ : ␣ " ); scanf ( " % d " ,& A );
5 printf ( " \ n ␣ donner ␣ B ␣ : ␣ " ); scanf ( " % d " ,& B );
6 q =0;
7 while (A >= B ){
8 q ++;
9 A -= B ;
10 }
11 printf ( " Quotient ␣ =% d ␣ et ␣ le ␣ reste ␣ : ␣ % d " ,q , A );
12 }

② Écrire un programme qui calcule le PGCD (Plus Grand Diviseur Commun) de deux nombres
entiers strictement positif a et b entrés par l’utilisateur.
1 # include < stdio .h >
2 main () {
3 int A ,B ,X ,Y , r ;
4 printf ( " \ n ␣ donner ␣ A ␣ : ␣ " ); scanf ( " % d " ,& A );
5 printf ( " \ n ␣ donner ␣ B ␣ : ␣ " ); scanf ( " % d " ,& B );
6 X=A;Y=B;
7 while ( B !=0){
8 r=A%B;
9 A=B;
10 B=r;
11 }
12 printf ( " PGCD (% d ␣ ,␣ % d )=% d " ,X ,Y , A );
13 }

14 Exercice 14

Page 6
① Écrire un programme qui lit n nombres réels et affiche leur moyenne.
1 # include < stdio .h >
2 main () {
3 int N , i ;
4 float a , moy ;
5 printf ( " \ n ␣ donner ␣ N ␣ : ␣ " ); scanf ( " % d " ,& N );
6 i =0; moy =0;
7 while (i < N ){
8 printf ( " \ n ␣ donner ␣ un ␣ nombre ␣ : ␣ " ); scanf ( " % f " ,& a );
9 moy += a ;
10 i ++;
11 }
12 moy /= N ;
13 printf ( " La ␣ moyenne ␣ est ␣ %.2 f " , moy );
14 }

② Écrire un programme qui lit n nombres entiers et détermine est ce que ces entiers ont été
entrés triés dans un ordre croissant ou non.
Exemple : pour n = 5
> Si on saisie la suite des nombres : 4,6,7,8,9 le programme affiche "Suite ordonnée"
> Si on saisie la suite des nombres : 4,6,7,5,9 le programme affiche "Suite désordonnée

1 # include < stdio .h >


2 main () {
3 int N , trier ,i ,a , b ;
4 printf ( " \ n ␣ Donner ␣ N ␣ : ␣ " ); scanf ( " % d " ,& N );
5 printf ( " \ n ␣ donner ␣ un ␣ nombre ␣ : ␣ " ); scanf ( " % d " ,& a );
6 trier =1;
7 i =1;
8 while (i < N && trier ==1){
9 printf ( " \ n ␣ donner ␣ un ␣ nombre ␣ : ␣ " ); scanf ( " % d " ,& b );
10 if (b < a )
11 trier =0;
12 i ++;
13 }
14 if ( trier )
15 printf ( " ++++ ␣ Suite ␣ ordonnee ␣ ++++ " );
16 else
17 printf ( " ++++ ␣ Suite ␣ desordonnee ␣ ++++ " );
18 }

15 Exercice 15
Calculez le nombre lu à rebours d’un nombre positif entré au clavier.
Exemple :
>>> donner un nombre : 12345
>>> 54321

1 # include < stdio .h >


2 main () {
3 int N , X ;

Page 7
4 printf ( " \ n ␣ Donner ␣ N ␣ : ␣ " ); scanf ( " % d " ,& N );
5 X =0;
6 while ( N !=0){
7 X = X *10+ N %10;
8 N = N /10;
9 }
10 printf ( " % d " ,X );
11 }

16 Exercice 16
Ce jeu est très simple. L’ordinateur tire un nombre au hasard entre 1 et 30 et vous avez cinq
essais pour le trouver. Après chaque tentative, l’ordinateur vous dira si le nombre que vous avez
proposé est trop grand, trop petit, ou si vous avez trouvé le bon nombre.
Exemple de partie
J’ai choisi un nombre entre 1 et 30
A vous de le deviner en 5 tentatives au maximum !
== Essai no 1 ==
Votre proposition : 15
Trop petit!!!
== Essai no 2 ==
Votre proposition : 22
Trop grand!!!!
== Essai no 3 ==
Votre proposition : 16
^_^ Bravo ! Vous avez trouvé 16 en 3 essais ^_^

1 # include < stdio .h >


2 # include < stdlib .h >
3 # include < time .h >
4 main (){
5 int num , nbessai =5 , n ;
6 srand ( time ( NULL ));
7 num = rand ()%31;
8 printf ( " J ’ ai ␣ choisi ␣ un ␣ nombre ␣ entre ␣ 1 ␣ et ␣ 30!!\ n " );
9 printf ( " A ␣ vous ␣ de ␣ le ␣ deviner ␣ en ␣ 5 ␣ tentatives ␣ au ␣ maximum ␣ !\ n " );
10 while ( nbessai >0){
11 nbessai - -;
12 printf ( " \ n === ␣ Esai ␣ N ␣ % d ␣ ==== ␣ \ n " ,5 - nbessai );
13 printf ( " Votre ␣ proposition ␣ : ␣ " );
14 scanf ( " % d " ,& n );
15 if (n < num ) printf ( " trop ␣ petit " );
16 if (n > num ) printf ( " trop ␣ grand " );
17 if ( n == num ) {
18 printf ( " ^ _ ^ ␣ Bravo ␣ ! ␣ Vous ␣ avez ␣ trouve ␣ % d ␣ en ␣ % d ␣ essais ␣ ^ _ ^ " ,num ,5 - nbessai
19 nbessai =0;
20 }
21 }
22 }

17 Exercice 17

Page 8
① Écrire un programme qui détermine si un nombre entier >2 entré par l’utilisateur est pre-
mier ou non.
1 # include < stdio .h >
2 # include < stdlib .h >
3 main (){
4 int N , nbdiviseur =0 , i ;
5 printf ( " Donner ␣ un ␣ nombre ␣ : ␣ " );
6 scanf ( " % d " ,& N );
7 for ( i =2; i <= N /2; i ++){
8 if ( N % i ==0)
9 nbdiviseur ++;
10 }
11 if ( nbdiviseur ==0)
12 printf ( " % d ␣ est ␣ premier ␣ ! " ,N );
13 else
14 printf ( " % d ␣ n ’ est ␣ pas ␣ premier ␣ ! " ,N );
15 }
② Afficher tous les nombres premiers qui sont inférieurs ou égal à 100.
1 # include < stdio .h >
2 # include < stdlib .h >
3 main (){
4 int N , nbdiviseur , i ;
5 for ( N =2; N <=100; N ++){
6 nbdiviseur =0;
7 for ( i =2; i <= N /2; i ++){
8 if ( N % i ==0)
9 nbdiviseur ++;
10 }
11 if ( nbdiviseur ==0)
12 printf ( " \ n ␣ % d ␣ est ␣ premier ␣ ! " ,N );
13 }
14 }

18 Exercice 18
① Écrire un programme qui détermine si un entier > 2 saisi par l’utilisateur est parfait ou
non.
N.B : Un nombre est parfait si égal à la somme de ses diviseurs stricte (sauf lui-même).
N = 6 est parfait car 6 = 1 + 2 + 3.
1 # include < stdio .h >
2 # include < stdlib .h >
3 main (){
4 int N , S =0 , i ;
5 printf ( " Donner ␣ un ␣ nombre ␣ : ␣ " );
6 scanf ( " % d " ,& N );
7 for ( i =1; i <= N /2; i ++){
8 if ( N % i ==0)
9 S += i ;
10 }
11 if ( S == N )

Page 9
12 printf ( " % d ␣ est ␣ parfait ␣ ! " ,N );
13 else
14 printf ( " % d ␣ n ’ est ␣ pas ␣ parfait ␣ ! " ,N );
15 }
16 # include < stdio .h >
17 # include < stdlib .h >
② Afficher tous les nombres parfaits qui sont inférieurs ou égal à 100.
1 # include < stdio .h >
2 # include < stdlib .h >
3 main (){
4 int N ,S , i ;
5 for ( N =1; N <=100; N ++){
6 S =0;
7 for ( i =1; i <= N /2; i ++){
8 if ( N % i ==0)
9 S += i ;
10 }
11 if ( S == N )
12 printf ( " \ n ␣ % d ␣ est ␣ parfait ␣ ! " ,N );
13 }
14 }

19 Exercice 19
Écrire un programme qui demande à l’utilisateur de taper un entier N et qui calcule u( N )
défini par :
u(0) = 1, u(1) = 1
u ( n + 1) = u ( n ) + u ( n − 1)
Exemple :
>>> donner N : 4
>>> u(4)= 5

1 # include < stdio .h >


2 # include < stdlib .h >
3 main (){
4 int N ,u ,v ,w , i ;
5 printf ( " Donner ␣ N ␣ : " );
6 scanf ( " % d " ,& N );
7 u = v =1;
8 for ( i =2; i <= N ; i ++){
9 w=v+u;
10 u=v;
11 v=w;
12 }
13 printf ( " \ n ␣ U (% d ) ␣ =% d " ,N , v );
14 }

20 Exercice 20

Page 10
Écrire un programme qui calcule la racine carrée de la valeur réel positif a grâce à la formule
récurrente
1 a
Un+1 = × (Un + ).
2 Un
Les calculs doivent commencer avec 1 comme valeur initiale de U0 et s’arrêtent quand la valeur
absolue de la différence entre les deux derniers valeurs calculés est inférieur strictement à 0.001.
1 # include < stdio .h >
2 # include < stdlib .h >
3 main (){
4 float a ,u ,v , err ;
5 int N , i ;
6 printf ( " Donner ␣ a ␣ : " );
7 scanf ( " % f " ,& a );
8 u =1;
9 err =1;
10 while ( err >=1 E -3){
11 v =( u + a / u )/2;
12 err = fabs (v - u );
13 u=v;
14 }
15 printf ( " \ n ␣ Une ␣ valeur ␣ approchee ␣ du ␣ racine ␣ de ␣ %.2 f ␣ est ␣ % f " ,a , v );
16 }

Page 11
45
ENSAM - RABAT 22-23. TD 3 /TP 3 : langage C
Dep. Math. Info.✍ (Tableaux 1D en C) Informatique
Pr. M. JOHRI

21 Exercice 21
Écrire un programme qui demande N nombres entiers à l’utilisateur, les range dans un tableau.
Afficher le tableau, ainsi que le nombre le plus petit et le plus grand.
1 # include < stdio .h >
2 # define Dim 50
3 main (){
4 int T [ Dim ] ,i ,N , mx , mn ;
5 printf ( " Donner ␣ N ␣ : " ); scanf ( " % d " ,& N );
6 for ( i =0; i < N ; i ++){
7 printf ( " Donner ␣ T [% d ] ␣ = ␣ " ,i );
8 scanf ( " % d " ,& T [ i ]);
9 if ( i ==0){
10 mx = mn = T [0];
11 }
12 if ( T [ i ] > mx ) mx = T [ i ];
13 if ( T [ i ] < mn ) mn = T [ i ];
14 }
15 for ( i =0; i < N ; i ++)
16 printf ( " % d ␣ ␣ " ,T [ i ]);
17 printf ( " \ n ␣ Le ␣ minimum ␣ est ␣ % d ␣ et ␣ le ␣ maximum ␣ est ␣ % d ␣ " ,mn , mx );
18 }

22 Exercice 22
Ecrire un programme C qui lit un entier n. Puis n autres entiers inférieurs à 100, dans un
tableau. Et affiche le nombre d’occurrences de chaque élément du tableau de la façon suivante:
Si le tableau est: 1 2 5 2 1 2, on affiche:
1 est répété 2 fois.
2 est répété 3 fois.
5 est répété 1 fois.
chaque élément ne doit être cité qu’une seule fois.
1 # include < stdio .h >
2 # define Dim 100
3 main (){
4 int T [ Dim ] , NB [ Dim ]={0} , i , N ;
5 printf ( " Donner ␣ N ␣ : " ); scanf ( " % d " ,& N );
6 for ( i =0; i < N ; i ++){
7 printf ( " Donner ␣ T [% d ] ␣ = ␣ " ,i );
8 scanf ( " % d " ,& T [ i ]);
9 }
10 for ( i =0; i < N ; i ++)
11 NB [ T [ i ]]+=1;
12 for ( i =0; i <100; i ++){
13 if ( NB [ i ]!=0)

Page 12
14 printf ( " \ n ␣ % d ␣ ␣ est ␣ repete ␣ % d ␣ fois " ,i , NB [ i ]);
15 }
16 }

23 Exercice 23
Demander à l’utilisateur de saisir une chaîne de caractère en miniscule. Compter le nombre
de voyelle et afficher leur nombre.
ind : un tableau de caractère (chaîne de caractères), se termine par le caractère
spécial :’\0’.
1 # include < stdio .h >
2 # define Dim 100
3 main (){
4 char ch [ Dim ];
5 int i , compt =0;
6 printf ( " Donner ␣ une ␣ chaine ␣ de ␣ caractere ␣ : " );
7 gets ( ch );
8 i =0;
9 while ( ch [ i ]!= ’ \0 ’ ){
10 switch ( ch [ i ]){
11 case ’a ’: { compt ++; break ;}
12 case ’e ’: { compt ++; break ;}
13 case ’i ’: { compt ++; break ;}
14 case ’y ’: { compt ++; break ;}
15 case ’u ’: { compt ++; break ;}
16 case ’o ’: { compt ++; break ;}
17 }
18 i ++;
19 }
20 printf ( " \ n ␣ le ␣ nombre ␣ de ␣ voyelle ␣ est ␣ % d " , compt );
21 }

24 Exercice 24
Demander à l’utilisateur de saisir N notes (entre 0 et 20).
① Saisir les notes et les mémoriser dans un tableau
② Calculer et afficher la moyenne
③ Compter et afficher combien il y a de notes supérieures à la moyenne
④ Dans le tableau de notes, chercher la note la plus petite. Afficher cette note et sa position
dans le tableau Même chose pour la note la plus grande.
1 main (){
2 float Note [ Dim ] , S =0 , moy =0;
3 int i ,N , nbsup =0 ,p , q ;
4 printf ( " Donner ␣ N ␣ : " ); scanf ( " % d " ,& N );
5 for ( i =0; i < N ; i ++){
6 do {
7 printf ( " Donner ␣ Note [% d ] ␣ = ␣ " ,i +1);
8 scanf ( " % f " ,& Note [ i ]);
9 } while ( Note [ i ] <0|| Note [ i ] >20);
10 S += Note [ i ];

Page 13
11 }
12 moy = S / N ;
13 printf ( " \ n ␣ La ␣ moyenne ␣ est ␣ %.2 f " , moy );
14 for ( i =0; i < N ; i ++){
15 if ( Note [ i ] >= moy )
16 nbsup ++;
17 }
18 printf ( " \ n ␣ Le ␣ nombre ␣ des ␣ notes ␣ superieur ␣ a ␣ la ␣ moyenne ␣ est ␣ % d " , nbsup );
19 p = q =0;
20 for ( i =0; i < N ; i ++){
21 if ( Note [ i ] < Note [ p ]) p = i ;
22 if ( Note [ i ] > Note [ q ]) q = i ;
23 }
24 printf ( " \ n ␣ La ␣ note ␣ la ␣ plus ␣ petite ␣ est ␣ %.2 f ␣ situe ␣ a ␣ la ␣ position ␣ % d ␣ dans ␣ le ␣ t
25 printf ( " \ n ␣ La ␣ note ␣ la ␣ plus ␣ grande ␣ est ␣ %.2 f ␣ situe ␣ a ␣ la ␣ position ␣ % d ␣ dans ␣ le ␣ t
26 }

25 Exercice 25
On imagine une visite médicale en deux parties où les patients se présentent d’abord tous
pour la mesure de leur taille, puis repassent, dans le même ordre, au pesage.
① Enregistrer dans un tableau la taille t en mètres de tous les patients qui se présentent (arrêt
par la saisie d’un nombre <= 0). Après la saisie, afficher le nombre total de patients.
② Pour chaque patient précédemment mesuré, enregistrer la masse m en kilogrammes dans
un second tableau.
③ Calculer et afficher la taille moyenne et le poids moyen des patients.
④ Pour chaque patient, calculer l’indice de masse corporelle : I MC = m/t2 et afficher :
• "pas assez" si IMC < 18.5,
• "trop" si IMC > 25,
• ou "normal" sinon.

1 # include < stdio .h >


2 # define Dim 50
3 main (){
4 float t [ Dim ] , m [ Dim ] , moyT =0 , moyP =0 , imc ;
5 int n , i ;
6 // int i ,N , nbsup =0 ,p , q ;
7 n = -1;
8 do {
9 n ++;
10 printf ( " Donner ␣ Taille [% d ] ␣ = ␣ " ,n +1);
11 scanf ( " % f " ,& t [ n ]);
12 } while ( t [ n ] >0);
13 t [ n ]=0;
14 printf ( " \ n ␣ le ␣ nombre ␣ de ␣ patients ␣ est ␣ % d ␣ \ n " ,n );
15 for ( i =0; i < n ; i ++){
16 printf ( " Donner ␣ Poids [% d ] ␣ = ␣ " ,i +1);
17 scanf ( " % f " ,& m [ i ]);
18 }
19 for ( i =0; i < n ; i ++){
20 moyT += t [ i ]/ n ;

Page 14
21 moyP += m [ i ]/ n ;
22 }
23 printf ( " \ n ␣ La ␣ taille ␣ moyenne ␣ est ␣ %.2 f " , moyT );
24 printf ( " \ n ␣ Le ␣ poids ␣ moyen ␣ est ␣ %.2 f " , moyP );
25

26 for ( i =0; i < n ; i ++){


27 imc = m [ i ]/( t [ i ]* t [ i ]);
28 printf ( " \ n ␣ Resultat ␣ Patient ␣ N ␣ % d " ,i +1);
29 if ( imc <18.5) printf ( " \ n ␣ pas ␣ assez " );
30 else if ( imc >25) printf ( " \ n ␣ trop " );
31 else printf ( " \ n ␣ Normal " );
32 }
33 }

Page 15

Vous aimerez peut-être aussi