Académique Documents
Professionnel Documents
Culture Documents
CAHIER D’EXERCICES 2
Les structures alternatives et répétitives
Pour tester les programmes écris ci-dessous, utilisez un compilateur en
ligne :
https://www.programiz.com/c-programming/online-compiler/
Exercice1 : Écrire un programme qui calcule et affiche la somme ainsi que la
moyenne d'une liste de n valeurs entières fournies par l'utilisateur
#include <stdio.h>
int main()
{
int i , s, valeurEntree;
int nbrRepetion;
float moyenne;
s=0;
printf("donnez svp le nombre de réptition :");
scanf("%d",&nbrRepetion);
for(i=0;i<nbrRepetion;i++)
{
printf("valeur %d svp : ", i+1);
scanf("%d",&valeurEntree) ;
s = s+valeurEntree;
}
printf("Somme = %d\n",s);
// on appelle cette technique le forçage de type ou casting
moyenne = (float)s / nbrRepetion; printf("Moyenne = %.2f",moyenne);
return 0;
}
Page 1 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez
Page 2 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez
{
int aleatoire;
const int MIN = 0, MAX = 50;
srand(time(NULL)); // Initialisation de la donnée
aleatoire = (rand() % (MAX + 1 - MIN)) + MIN;
int x;
int nbseq = 0;
do
{
printf("valeur svp : ");
scanf("%d",&x);
if(x>aleatoire)
printf("mois svp...\n");
else if (x<aleatoire)
printf("plus svp...\n");
else
printf("Exactement c'est ca !!");
nbseq = nbseq+1;
}while(x!=aleatoire);
printf("\nle nombre %d est deviné en %d coups.",x,nbseq);
return 0;
}
Améliorer le programme en limitant le nombre d’essais à 5 coups seulement
#include <stdio.h>
#include <Windows.h>
#include <time.h>
int main()
{
Page 3 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez
int aleatoire;
const int MIN = 0, MAX = 100;
srand(time(NULL)); // Initialisation de la donnée
aleatoire = (rand() % (MAX + 1 - MIN)) + MIN;
int x;
int nbseq = 0;
do
{
printf("valeur svp : ");
scanf("%d",&x);
if(x>aleatoire)
printf("mois svp...\n");
else if (x<aleatoire)
printf("plus svp...\n");
else
printf("Exactement c'est ca !!");
nbseq = nbseq+1;
}while(x!=aleatoire && nbseq<5);
if (x != aleatoire) { // echec
printf("Vous avez effectué 5 essais sans parvenir à deviner mon nombre.\n");
printf("Mon nombre était %d ", aleatoire);
}
else
printf("Nombre deviné en %d coups !! bravo .", nbseq);
return 0;
}
Page 4 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez
Exercice 4 : Ecrire un algorithme qui lit un entier puis détermine s’il est premier ou
non.
En mathématiques, les nombres premiers sont des entiers naturels supérieurs à 1
qui ont exactement deux diviseurs positifs : 1 et eux-mêmes.
#include<stdio.h>
int main()
{
int p,i,pr;
printf("Donnez un entier : ");
scanf("%d",&p);
if(p==0 || p==1)
Page 5 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez
return 0;
}
int main() {
const double prixCafe = 3.0;
double montantInsere = 0.0;
Page 6 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez
}
// Calcul de la monnaie à rendre
double monnaie = montantInsere - prixCafe;
if (monnaie > 0) {
printf("\nCafé servi ! Monnaie à rendre : %.1lf dinars\n", monnaie);
}
else {
printf("\nCafé servi ! Pas de monnaie à rendre.\n");
}
return 0;
}
Page 7 sur 7