Exercices + solutions en langage C Serie 4

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 :

La FSTS a voulu recruter par voie de concours des employés dans un service informatique. Le
concours porte sur N épreuves de coefficients différents. Proposer un programme qui permet
de calculer la moyenne pour chaque candidat participant au concours et éditer l'appréciation
du jury sachant que les mentions décernées sont les suivantes:
Si moyenne >= 15 "Admis avec félicitations"
Si 12<= moyenne < 15 "Admis avec mention bien"
Si 10<= moyenne < 12 '"Admis"
Si 9 <= moyenne < 10 "Redouble"
Sinon "Exclu"


Exercice 3:

Soit la déclaration suivante :
#define LONGUEUR 80
typedef char texte[LONGUEUR];
1) Faire une fonction void cherche (texte souschaine, texte chaine) qui saisit ces deux
chaines, et dise où et combien de fois on trouve la souschaine dans la chaine. Exemple :
chaine="fonction", souschaine="on", on trouve deux fois la souschaine, en position 1 et 6.
2) Faire le programme principal qui lit les deux chaines, appelle cherche et affiche les
résultats.
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[])
{float Note[100]; // Tableau des notes
Prof: Said EL KAFHALI Page 2/2
float Cof[100]; // Tableau des coefficients
float Moy; // La moyenne
int i,N; // Le nombre des notes et l'indice courant
float SomeCof; // La somme des coefficients
printf("Introduire le nombre des notes:");
scanf("%d",&N);
printf("Introduisez les notes :");
for(i=0;i<N;i++)
scanf("%f", &Note[i]);
printf("Introduisez les coefficients :");
for(i=0;i<N;i++)
scanf("%f", &Cof[i]);
// Le calcule de la somme des coefficients
SomeCof=0;
for(i=0;i<N;i++) SomeCof+=Cof[i];
// le calcule de la moyenne
for(i=0;i<N;i++)
Moy+= Note[i]*Cof[i]; // Les notes multiplier par les
coefficients
Moy=Moy/SomeCof;
if (Moy>=15)
printf(" La moyenne de ce candidat est %f : Admis avec
félicitations", Moy);
else if (12<= Moy && Moy< 15)
printf(" La moyenne de ce candidat est %f :Admis avec mention
bien",Moy);
else if (10<= Moy && Moy< 12)
printf(" La moyenne de ce candidat est %f : Admis ", Moy);
else if (9<= Moy && Moy< 10)
printf(" La moyenne de ce candidat est %f : Redouble", Moy);
else
printf(" La moyenne de ce candidat est %f : Exclu",Moy);
system("PAUSE");
return 0;
}


Exercice 3:

#include<stdio.h>
#include<stdlib.h>
#define LONGUEUR 80
typedef char texte[LONGUEUR];
void cherche(texte souschaine,texte chaine)
{
int i,nb=0,j;
for(i=0;chaine[i];i++)
{
for(j=0;souschaine[j]&&chaine[i+j];j++) //tant que pas à la
fin de l'1 des 2
if(souschaine[j]!=chaine[i+j])break; //dès différence,
sortie anticipée de la boucle
if(!souschaine[j]) printf("%dième position : %d\n",++nb,i);
//si arrivé au bout de souschaine, c'est trouvé
}
}
int main(int argc, char *argv[])
{
char chaine[40],souschaine[40];
printf("Introduire votre chaine:");
gets(chaine);
printf("Introduire la souchaine recherchee:");
gets(souschaine);
printf(" La sous chaine se trouve dans la chaine:\n");
cherche(souschaine,chaine);
system("PAUSE");
return 0;
}

Aucun commentaire:

Enregistrer un commentaire