\documentclass[a4paper,11pt]{report}
\usepackage[T1]{fontenc}       % Format de sortie.
\usepackage[utf8]{inputenc}    % Pour écrire en UTF-8.
\usepackage[official]{eurosym} % Pour la monnaie euro : \euro{}.
\DeclareUnicodeCharacter{20AC}{\euro{}} % Pour bien taper €.
\usepackage[francais]{babel}   % Pour adapter en français.
\usepackage{xcolor}            % Pour la couleur.
\usepackage{amsmath}           % Pour les maths.
\usepackage{amssymb}           % Symboles de maths.
\usepackage{hyperref}          % Les hyperliens.
\hypersetup{
    backref=true,              %permet d'ajouter des liens dans...
    pagebackref=true,          %...les bibliographies
    hyperindex=true,           %ajoute des liens dans les index.
    colorlinks=true,           %colorise les liens
    breaklinks=true,           %permet le retour à la ligne dans les liens trop longs
    urlcolor= blue,            %couleur des hyperliens
    linkcolor= blue,           %couleur des liens internes
    bookmarks=true,            %créé des signets pour Acrobat
    bookmarksopen=true,        %si les signets Acrobat sont créés,
                               %les afficher complètement.
    linktocpage=true,          %lier la table des matières.
    pdftitle={Code C},         %informations apparaissant dans
    pdfauthor={Alnotz},        %dans les informations du document
    pdfsubject={Code C}        %sous Acrobat.
}
\usepackage{minted} % Pour un bon bloc de code.
                    % Ne pas oublier la commande
                    %  "pdflatex -shell-escape".
\newcommand{\oneone}{1\!\!1} % Opérateur identité.
\newcommand{\gui}[1]{{\og}#1{\fg}} % Guillemets français.
\def\TikZ{Ti{\color{orange}\textit{k}}Z}
\date{\today} % "\title{Un document-test}" si on veut plus simple.
\title{
    \begin{minipage}\linewidth
        \centering\bfseries\sffamily
Titre
        \vskip3pt
        \large Sous-titre
    \end{minipage}
}
\author{Alnotz}
\begin{document}
    \maketitle
    \chapter{Le commencement}
    Un peu de code C ?
    \begin{center}
        \begin{minted}{c}

/*
 * Fichier : tp02.c
 * Auteur : Alnotz
 * Diplôme : Lpro Vision robotique
 * Date : 28/09/2018
 * Version : 0.1
 */
/* En-tête : Bibliothèque standard pour I/O. */
#include <stdio.h>
/* Fonction secondaire : H + 1 seconde.
 * On demande le temps et renvoie le temps une seconde plus tard.
 */
void exo09(void)
{
    unsigned int seconde ;
    unsigned int minute ;
    unsigned int heure ;
    printf("Exercise 09.\n\nYou have to give the time to know the") ;
    printf(" future time after 1 second.\n\nGive the hour.\n") ;
    printf("Hour :\t\t") ;
    /* Temps demandé. */
    scanf("%u", &heure) ;
    printf("\nGive the minute.\nMinute :\t") ;
    scanf("%u", &minute) ;
    printf("\nGive the second.\nSecond :\t") ;
    scanf("%u", &seconde) ;
    printf("\nActual time :\t%u:%u'%u\"\n\n", heure, minute, seconde) ;
    /* Une seconde est passée. */
    seconde = seconde + 1 ;
    if (seconde >= 60)
    {
        minute = minute + seconde/60 ;
        seconde = seconde % 60 ;
    }
    if (minute >= 60)
    {
        heure = heure + minute/60 ;
        minute = minute % 60 ;
    }
    /* Résultat. */
    printf("One second later, :\n") ;
    printf("New time :\t%u:%u'%u\"\n", heure, minute, seconde) ;
}
/* Fonction secondaire : reprographie.
 * Dans un magasin, on vend des articles.
 * Les 10 premiers exemplaires consécutifs valent 0.10 €.
 * Les 20 suivants valent 0.09 €.
 * Ceux qui suivent valent 0.08 €.
 */
void exo10(void)
{
    /* Nombre d'articles. */
    unsigned int nombre ;
    /* Facture à payer. */
    unsigned int facture = 0 ;
    printf("Exercise 10.\n\nYou buy many same items.You have to ") ;
    printf("give the number of items to know how number to pay.\n\n") ;
    printf("How many do you buy ?\nItem number :\t") ;
    scanf("%u", &nombre) ;
    /* On calcule le coût total. */
    if (nombre <= 10)
    {
        nombre = nombre * 10 ;
    }
    if (nombre <= 30)
    {
        nombre = 10 + (nombre-10) * 9 ;
    }
    if (nombre > 30 )
    {
        nombre = 10 + 180 + (nombre-30) * 8 ;
    }
    /* Affichage du coût. */
    printf("\nYou have to pay %u.%u euro.", (nombre - (nombre%100)) / 100, nombre % 100 ) ;
}
/* Fonction secondaire : imposition.
 * On demande quel est le sexe et l'âge d'un individu pour
 * indiquer s'il est imposable
 * Les hommes (m) de plus de 20 ans et plus sont imposables.
 * Les femmes (w) de 18 à 35 ans sont imposables.
 */
void exo11(void)
{
    /* Sexe du villagois : homme(m) ou femme(w). */
    unsigned int sexe ;
    /* Âge du villagois : nombre entier naturel. */
    unsigned int age ;
    printf("Exercise 11.\n\nOne needs age and sex of the villager to") ;
    printf(" know its imposability.\nWhat is the sex : '0' for man or '1' for woman ?\n\n") ;
    printf("Sex :\t") ;
    scanf("%u", &sexe) ;
    printf("\n") ;
    /* On vérifie la réponse donnée pour le sexe. */
    while (sexe != 0 && sexe != 1)
    {
        printf("Sorry, you must give '0' or '1'.\n") ;
        printf("What is the sex : '0' for man or '1' for woman ?\n\n") ;
        printf("Sex :\t") ;
        scanf("%u", &sexe) ;
        printf("\n") ;
    }
    printf("How many year old is the villager ?\n\nYear number :\t") ;
    scanf("%u", &age) ;
    printf("\n") ;
    /* On détermine si le villagois est imposable. */
    if ((sexe=='m' && age>=20) || (sexe=='w' && age>=18 && age<=35))
    {
        printf("The villager is imposable.\n") ;
    }
    else
    {
        printf("The villager is not imposable.\n") ;
    }
}
/* Fonction secondaire : élections.
 * On a quatre candidats. Après avoir indiqué leurs part de
 * suffage en %, on détermine si le premier candidat est élu ou non.
 * On précise s'il est en ballotage favorable ou non, s'il participe
 * au second tour.
 * Les candidats ayant 12.5% ou plus participent au second tour.
 * Le candidat ayant plus de 50% est élu.
 */
void exo12(void)
{
    /* Scores respectifs des 4 candidats. */
    unsigned short score[4] ;
    /* Score total. */
    unsigned long total = 0 ;
    unsigned short i ;
    printf("Exercise 12.\n\nOne needs to know the score for 4 candidates.") ;
    printf("\nYou'll give the score of each. After, one will show if the ") ;
    printf(" first candidate is elected, not elected or in a second tour.\n\n") ;
    /* On collecte les suffrages. */
    for(i=0; i<4; i=i+1)
    {
        printf("Give the score of candidat #%hu\nCandidat #%hu :\t", i, i) ;
        scanf("%hu", &score[i]) ;
        printf("\n") ;
        /* Précision au 100ème près. */
        /* Les taux ne seront pas affectés. */
        total = total + score[i]*100 ;
    }
    /* On vérifie si le premier candidat gagne au premier tour. */
    if (score[0]*100 >= total/2)
    {
        printf("The first candidate is elected.\n") ;
    }
    /* Si non, perd-il les élections ? */
    else if
    (
        score[0]*100 <  total/8 ||
        score[1]*100 >= total/2 ||
        score[2]*100 >= total/2 ||
        score[3]*100 >= total/2
    )
    {
        printf("The first candidate is not elected.\n") ;
    }
    /* ... Ou est-ce juste qu'il doit faire un second tour avec
     * un ballottage favorable ?
     */
    else if
    (
        score[0]*100 >= score[1] &&
        score[0]*100 >= score[2] &&
        score[0]*100 >= score[3]
    )
    {
        printf("The first candidate is not elected but can") ;
        printf(" participate to an favorable second tour.\n") ;
    }
    /* Bon, dans ce cas, il est au second tour avec un ballottage
     * qui n'est pas favorable.
     */
    else
    {
        printf("The first candidate is not elected but can") ;
        printf(" participate to an no favorable second tour.\n") ;
    }
}
/* Fonction secondaire : tarification assurance.
 * On propose au client quatre niveaux de tarifs.
 * Moins de 25 ans abaisse le niveau.
 * Moins de 2 ans de permis abaisse le niveau.
 * Chaque accident abaisse le niveau.
 * Si le niveau est abaissé plus de 3 fois,
 * le client est refusé.
 * Le client doit alors indiquer :
 * -- son âge.
 * -- combien d'années il a son permis de conduire.
 * -- le nombre d'accidents.
 */
void exo13(void)
{
    /* Âge du client. */
    unsigned short age ;
    /* Nombre d'années après obtention du permis. */
    unsigned short permis ;
    /* Nombre d'accidents. */
    unsigned short accident ;
    /* Les défauts du client. */
    unsigned short defaut = 0 ;
    printf("Exercise 13.\n\nOne may offer you 4 fares :\n") ;
    printf("-- Green fare : the best !\n") ;
    printf("-- Yellow fare : good.\n") ;
    printf("-- Orange fare : bad.\n") ;
    printf("-- Red fare : very bad.\n\n") ;
    printf("For that, you must give how many years old you are,\n") ;
    printf(" how many years you have got your car pass\n") ;
    printf(" and the car accidents number.\nGive your age.\n\n") ;
    printf("Old year :\t") ;
    scanf("%hu", &age) ;
    if (age <  25) {defaut = defaut + 1 ;}
    printf("\nGive the year number you have your pass.\n") ;
    printf("Pass year :\t") ;
    scanf("%hu", &permis) ;
    if (permis <  2) {defaut = defaut + 1 ;}
    printf("\nGive the accidents number.\nAccidents number :\t") ;
    scanf("%hu", &accident) ;
    if (accident >  0) {defaut = defaut + accident ;}
    printf("\n") ;
    /* On détermine le meilleur tarif possible. */
    /* Un sans faute ! */
    if (defaut == 0)
    {
        printf("Congratulation ! You have the Green fare !\n") ;
    }
    /* Une condition ne convient pas. */
    else if (defaut == 1)
    {
        printf("Good job. You have the Yellow fare.\n") ;
    }
    /* Un cran plus bas. */
    else if (defaut == 2)
    {
        printf("That's not so bad. You have the Orange fare.\n") ;
    }
    else if (defaut == 3)
    {
        printf("Better than nothing. You have the Red fare.\n") ;
    }
    else
    {
        printf("Sorry. You are too bad to have a fare.\n") ;
    }
}
/* Fonction principale. */
int main(void)
{
    printf("Welcome in tp02.\n\n") ;
    /*
     * exo09() ;
     * exo10() ;
     * exo11() ;
     * exo12() ;
     * exo13() ;
     */
    return 0 ;
}

        \end{minted}
    \end{center}
\end{document}
