Correction des Exercices 4 à 7
Correction des Exercices 4 à 7
Exercice 4 :
Énoncé : Dans le programme, en considérant toujours la saisie d'une suite de caractères avec le même principe, écrire le code permettant de déterminer le nombre d'occurrences du caractère e
, ainsi que le nombre d'occurrences total des caractères a
, e
, i
, o
, u
. Les deux résultats seront affichés en utilisant la fonction printf
.
Solution :
#include <stdio.h>
int main() {
char c;
int count_e = 0, count_vowels = 0;
printf("Entrez une suite de caractères (appuyez sur Entrée pour arrêter) :\n");
while ((c = getchar()) != '\n') {
if (c == 'e') {
count_e++;
}
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
count_vowels++;
}
}
printf("Nombre d'occurrences de 'e' : %d\n", count_e);
printf("Nombre total de voyelles (a, e, i, o, u) : %d\n", count_vowels);
return 0;
}
Explication :
Le programme utilise une boucle pour lire chaque caractère de la chaîne saisie. Un compteur count_e
est incrémenté chaque fois que le caractère e
est rencontré. Un autre compteur count_vowels
est incrémenté chaque fois que l'une des voyelles a
, e
, i
, o
, u
est rencontrée. Les résultats sont ensuite affichés à l'aide de printf
.
Exercice 5 :
Énoncé : Recopier les instructions suivantes dans votre programme, puis compiler et tester pour comprendre ce qu'il affiche.
int i;
for (i = 0; i <= 3; i++)
printf("%c\n", 'a' + i);
printf("%c\n", 'a' + i + 1);
Explication :
Le programme utilise une boucle for
pour itérer de i = 0
à i = 3
. À chaque itération, il affiche un caractère en ajoutant i
à la valeur ASCII de 'a'
, ce qui affiche les lettres de 'a'
à 'd'
. Après la boucle, il affiche la lettre 'f'
car 'a' + i + 1
correspond à 'f'
.
Sortie attendue :
a
b
c
d
f
Exercice 6 :
Énoncé : Écrire les instructions permettant d'effectuer les opérations suivantes :
- Inviter l'utilisateur à entrer une lettre minuscule.
- Obtenir la valeur saisie.
- Afficher le nombre de lignes qui sépare la lettre de la lettre
'C'
à gauche et de la lettre 'D'
à droite.
Solution :
#include <stdio.h>
int main() {
char letter;
printf("Entrez une lettre minuscule : ");
scanf("%c", &letter);
int distance_from_C = letter - 'C';
int distance_from_D = 'D' - letter;
printf("Distance de 'C' : %d\n", distance_from_C);
printf("Distance de 'D' : %d\n", distance_from_D);
return 0;
}
Explication :
Le programme demande à l'utilisateur d'entrer une lettre minuscule. Il calcule ensuite la distance entre la lettre saisie et la lettre 'C'
, ainsi qu'entre la lettre saisie et la lettre 'D'
. Les résultats sont affichés, montrant combien de lettres séparent la lettre saisie de 'C'
et 'D'
.
Exercice 7 :
Énoncé : On veut dessiner à l'écran un 'L'
ou un 'H'
sur plusieurs lignes à l'aide du caractère '*'
comme dans les exemples ci-dessous. Écrire les instructions permettant de faire le dessin en question avec des boucles dans le programme. La largeur (qui doit être impaire) et la hauteur de la lettre seront fixées dans le programme via la déclaration de deux constantes.
Solution :
#include <stdio.h>
#define HEIGHT 5
#define WIDTH 3
void draw_L() {
for (int i = 0; i < HEIGHT - 1; i++) {
printf("*\n");
}
for (int j = 0; j < WIDTH; j++) {
printf("*");
}
printf("\n");
}
void draw_H() {
for (int i = 0; i < HEIGHT; i++) {
for (int j = 0; j < WIDTH; j++) {
if (j == 0 || j == WIDTH - 1 || i == HEIGHT / 2) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
}
int main() {
printf("Dessiner un 'L' :\n");
draw_L();
printf("\nDessiner un 'H' :\n");
draw_H();
return 0;
}
Explication :
Pour le 'L'
: Le programme affiche un *
pour chaque ligne sauf la dernière. Pour la dernière ligne, il affiche *
autant de fois que la largeur.
Pour le 'H'
: Le programme utilise deux boucles imbriquées pour dessiner le 'H'
. Il affiche *
sur les colonnes de gauche et de droite, ainsi que sur la ligne centrale.