Exercice 1: les bases

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int age = 25;
    float taille = 1.75f;
    char initiale = 'J';
    char nom[] = "Dupont";
    
    /* Question 1.1 */
    printf("Nom: __\n", nom);
    /* Question 1.2 */
    printf("Initiale: __\n", initiale);
    /* Question 1.3 */
    printf("Age: __ ans\n", age);
    /* Question 1.4 */
    printf("Taille: __ m\n", taille);
    
    return EXIT_SUCCESS;
}

Questions :
1.1 Compléter avec %s pour afficher le nom
1.2 Compléter avec %c pour l’initiale
1.3 Compléter avec %d pour l’âge en décimal
1.4 Compléter avec %.2f pour la taille avec 2 décimales

Solution
printf("Nom: %s\n", nom);
printf("Initiale: %c\n", initiale);
printf("Age: %d ans\n", age);
printf("Taille: %.2f m\n", taille);

Exercice 2 : Notation %d vs %i

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int b = 015;  /* Octal */
    int c = 0x15; /* Hexadécimal */
    
    /* Question 2.1 */
    printf("b (octal) avec %%d: __\n", b);
    /* Question 2.2 */
    printf("b (octal) avec %%i: __\n", b);
    /* Question 2.3 */
    printf("c (hexa) avec %%d: __\n", c);
    
    return EXIT_SUCCESS;
}

Questions :
2.1 Afficher b avec %d (affiche 13)
2.2 Afficher b avec %i (affiche aussi 13)
2.3 Afficher c avec %d (affiche 21)

Solution
printf("b (octal) avec %%d: %d\n", b);
printf("b (octal) avec %%i: %i\n", b);
printf("c (hexa) avec %%d: %d\n", c);

Exercice 3 : Formatage avancé

#include <stdio.h>
#include <stdlib.h>

int main()
{
    double pi = 3.141592653589793;
    
    /* Question 3.1 */
    printf("Pi scientifique: __\n", pi);
    /* Question 3.2 */
    printf("Pi 5 decimales: __\n", pi);
    
    return EXIT_SUCCESS;
}

Questions :
3.1 Utiliser %e pour la notation scientifique
3.2 Utiliser %.5f pour 5 décimales

Solution:
printf("Pi scientifique: %e\n", pi);
printf("Pi 5 decimales: %.5f\n", pi);
Pi scientifique: 3.141593e+00
Pi 5 decimales: 3.14159

Exercice 4 : Alignement texte

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char prenom[] = "Marie";
    
    /* Question 4.1 */
    printf("Prénom (10c droit) : __\n", prenom);
    /* Question 4.2 */
    printf("Prénom (10c gauche): __\n", prenom);
    
    return EXIT_SUCCESS;
}

Questions :
4.1 Aligner à droite avec %10s
4.2 Aligner à gauche avec %-10s

Solution

printf("Prénom (10c droit): %10s\n", prenom);
printf("Prénom (10c gauche): %-10s\n", prenom);
Prénom (10c droit) :      Marie
Prénom (10c gauche): Marie  
                     1234567890   

Exercice 5 : Format combiné

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int h = 14, m = 5;
    float temp = 23.7f;
    
    /* Question 5 */
    printf("Il est __:__ et il fait __°C\n", h, m, temp);
    
    return EXIT_SUCCESS;
}

Solution:
printf("Il est %02d:%02d et il fait %.1f°C\n", h, m, temp);
Il est 14:05 et il fait 23.7°C

Détails du formatage :

  1. Heure (%02d) :
    • %02d formate le nombre sur 2 chiffres, en ajoutant un zéro devant si nécessaire.
    • m = 5 → affiché comme 05.
  2. Minutes (%02d) :
    • Même principe que pour l’heure.
    • h = 14 → affiché tel quel (déjà sur 2 chiffres).
  3. Température (%.1f) :
    • %.1f arrondit le flottant à 1 décimale.
    • temp = 23.7 → affiché comme 23.7 (pas d’arrondi supplémentaire ici).