Exercices + solutions en langage C Serie 2

Exercice 1 :

Soit T un tableau dont les composantes sont d’un type simple fixé. Soit X une variable de
même type que les composantes de T. Donnez un programme qui affiche présent ou absent
selon que la valeur de X est égal ou non à celle d’une composante de T, et si oui, la première
position où cette valeur est localisée dans T.


Exercice 2 :

1) Faire une fonction Min qui détermine le minimum de deux entiers.
2) Faire une fonction Max qui détermine le maximum de deux entiers.
3) Faire une fonction MinMax qui appelle les fonctions Min et Max pour déterminer le
minimum et le maximum de deux entiers.
4) Faire le programme principal qui lit deux entiers, appelle MinMax et affiche les résultats.


Exercice 3:

Ecrire un programme qui lit un verbe du premier groupe et qui en affiche la conjugaison au
présent de l'indicatif, sous la forme :
je chante
tu chantes
il chante
nous chantons
vous chantez
ils chantent
Le programme devra vérifier que le mot fourni se termine bien par "er". On supposera qu'il ne
peut comporter plus de 30 lettres et qu'il s'agit d'un verbe régulier. Autrement dit, on admettra
que l'utilisateur ne fournira pas un verbe tel que "manger" (le programme afficherait alors :
"nous mangeons" !).


Correction

Exercice 1 :

#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{ int T[100]; /* Un tableau de 100 éléments */
int N; /* la dimension du tableau*/
int i; /*l'indice courant*/
int X; /* la valeur cherchée*/
int pos; /* variable pour trouvé la position de la valeur*/
int ok; //*variable de test*/
printf("Introduire le nombre des notes max=100:\n");
scanf("%d",&N);
/* La saisie des éléments du tableau*/
for(i=0;i<N;i++)
{
printf("L'élément T[%d]:",i);
scanf("%d",&T[i]);
}
/* La saisie de la valeur cherchée*/
printf("Introduire la valeur cherchée:\n");
scanf("%d",&X);
/* Cherche de la valeur*/
ok=0;
pos=0;
for(i=0;i<N;i++)
{if (T[i]==X){
ok=1;
pos=i;break;
}}
/* L'affichage des résultats */
if (ok==1)
printf("L'élément %d est présent et sa première position dans
le tableau est %d \n",X,pos);
else
printf(" Absent");
system("PAUSE");
return 0;
}


Exercice 2 :

#include<stdio.h>
#include<stdlib.h>
int Min(int A, int B) /* Définition de la fonction Min*/
{
if (A<B)
return A;
else return B;
}
int Max(int A, int B) /* Définition de la fonction Max*/
{
if (A>B)
return A;
else return B;
}
void MinMax(int X, int Y) /* La fonction MinMax*/
{
int Inf, Sup;
Inf=Min(X,Y);
Sup=Max(X,Y);
printf("Le minimum est :%d\n",Inf);
printf("Le maximum est :%d",Sup);
}
int main(int argc, char *argv[])/* Le programme principale*/
{ int U,V;
printf("Introduire les valeurs :");
scanf("%d %d",&U,&V);
MinMax(U,V);
system("PAUSE");
return 0;
}


Exercice 3:

#include<stdio.h>
#include<stdlib.h>
#define LGMAX 30
int main(int argc, char *argv[])
{
char verbe [LGMAX+1] ;
char * adfin ;
char * term[6] = {"e", "es", "e", "ons", "ez", "ent" } ;
char * deb[6] = {"je", "tu", "il", "nous", "vous", "ils"} ;
int i ;
do
{ printf ("donnez un verbe du premier groupe : ") ;
gets (verbe) ;
adfin = verbe + strlen(verbe) - 2 ;
}while (strcmp (adfin, "er")) ;
printf ("\nIndicatif présent :\n") ;
for (i=0 ; i<6 ; i++)
{ strcpy (adfin, term[i]) ;
printf ("%s %s\n", deb[i], verbe) ;
}
system("PAUSE");
return 0;
}


Exercices + solutions en langage C Serie 1

Exercice 1 :
Écrire une fonction search qui recherche une valeur particulière dans un tableau de flottants
(float). La fonction prendra en paramètre le tableau, sa taille et la valeur à rechercher. Elle
retourna une valeur entière qui sera une position de la valeur dans le tableau si elle est
présente dans le tableau et -1 sinon. Inclure cette fonction dans un programme qui saisit les
valeurs du tableau et la valeur à rechercher.


Exercice 2 :
Ecrire un programme qui permet de saisir le sexe (M/F), la taille, et le poids d’une personne et
d’afficher :
1) PI, le poids idéal d’une personne, sachant que ce poids théorique est donné par la formule
de Lorenz comme suit :
Pour un homme : PI= (taille-100)-(taille-150)/4
Pour une femme : PI= (taille-100)-(taille-120)/4
2) BMI, l’indicateur d’obésité (Body Mass Index) où BMI=poids/taille*taille.
3) Si une personne est considérée comme : normale (BMI<=27), ou obèse (BMI>27) ou
malade (BMI>=32).


Exercice 3:
Écrire un programme qui demande trois valeurs entières à l’utilisateur, affecte la plus grande
valeur à une variable grand, la valeur intermédiaire à une variable moyen et la plus petite des
trois à une variable petit, puis affiche les valeurs de grand, moyen et petit.

Correction :

Exercice 1 :
#include<stdio.h>
#include<stdlib.h>
/* Définition de la fonction search*/
Int search(float T[], int size, float Valeur)
{
int i; /* Indice courant */
for (i=0; i<size;i++)
if (T[i] == Valeur)
return i; /* Position de la valeur */
return -1; /* Valeur non trouvée */
}
/* Le programme principale*/
int main(int argc, char *argv[])
{
const int size = 10; /* Taille du tableau */
float T[size]; /* Tableau */
float x; /* Valeur à rechercher */
int i; /* Indice */
/* Remplissage du tableau */
printf("Remplissage du tableau:\n");
for (i = 0; i < size; i++)
{
printf("Entrer T[%d]=:",i);
scanf("%f",&T[i]);
}
/* Affichage du tableau */
printf("Affichage du tableau:\n");
for (i = 0; i < size; i++)
printf("T[%d] = %f\n", i, T[i]);
/* Saisie de la clé à rechercher */
printf("Entrer la valeur : ");
scanf("%f", &x);
/* Affichage du résultat */
printf(" %d\n", search(T, size, x));
system("PAUSE");
return 0;
}


Exercice 2 :
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{ char Sexe;
float taille;
float poids;
float PI;
float BMI;
printf("Introduire le sexe (M ou F):");
scanf("%c",&Sexe);
printf("Introduire la taille :");
scanf("%f",&taille);
printf("Introduire le poids:");
scanf("%f",&poids);
if (Sexe=='M') PI= (taille-100)-(taille-150)/4;
if (Sexe=='F') PI= (taille-100)-(taille-120)/4;
printf(" Le poids idéal de cette personne est %f et ",PI);
BMI=poids/taille*taille;
if(BMI<=27) printf ("Cette personne est normale");
else if (BMI>27) printf ("Cette personne est obèse");
else if (BMI>=32)printf ("Cette personne est malade");
system("PAUSE");
return 0;
}


Exercice 3:
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{ int A,B,C; /* Les variables d'entrées*/
int Grand, Petit, Moyen; /* Les variables de sorties*/
printf("Introduisez trois nombres entiers :");
scanf("%d %d %d", &A, &B, &C);
if(A<=B) { if(B<=C) {Petit=A; Moyen=B; Grand=C;}
else {if (C<=A){Petit=C; Moyen=A; Grand=B;}
else {Petit=A; Moyen=C; Grand=B;}
}} else { if(A<=C){Petit=B; Moyen=A; Grand=C;}
else { if(C<=B) {Petit=C; Moyen=B; Grand=A;}
else {Petit=B; Moyen=C; Grand=A;}}}
printf(" Les valeurs sont: \t Grand = %d\t Moyen = %d\t Petit
= %d\n", Grand, Moyen, Petit);
system("PAUSE");
return 0;}