diff --git a/Exercices/Programmes/prog-1.rst b/Exercices/Programmes/prog-1.rst
index 4d85f9d7cfaaaa56a26c4c96823bf1e51f46d385..cf20bb9bc90f232f77961aa0e340e4894f90ef89 100644
--- a/Exercices/Programmes/prog-1.rst
+++ b/Exercices/Programmes/prog-1.rst
@@ -78,12 +78,18 @@ que vous aviez réalisé en Java.
 
         .. code-block:: c
 
-	        int main(int argc, const char *argv[])
+                int f()
                 {
                         int a = 1252;
                         printf("%d\n", a);
                 }
 
+                int main(int argc, const char *argv[])
+                {
+                        f();
+                }
+
+
 #. Expliquez à quoi sert l'option ``-Werror`` de ``gcc``. Regardez la manpage (`gcc(1)`_).
 
         .. only:: staff
@@ -92,7 +98,7 @@ que vous aviez réalisé en Java.
                         ``-Werror``
                                    Make all warnings into errors.
 
-#. Recompilez le code du point `1` avec l'option ``-Werror``, que se passe-t-il ? Que faut-t-il rajouter dans le code pour qu'il compile sans erreurs ?
+#. Recompilez le code du point `4` avec l'option ``-Werror``, que se passe-t-il ? Que faut-t-il rajouter dans le code pour qu'il compile sans erreurs ?
 
         .. only:: staff
 
@@ -100,7 +106,7 @@ que vous aviez réalisé en Java.
 
                         Le programme ne compile plus. Il faut inclure ``stdio.h`` parce que C nécessite d'avoir une déclaration des fonctions.
 
-#. (bonus) comment se fait-il que ``gcc`` compilait sans problème au point `1`?
+#. (bonus) comment se fait-il que ``gcc`` compilait sans problème au point `4`?
 
         .. only:: staff
 
@@ -108,7 +114,7 @@ que vous aviez réalisé en Java.
 
                         ``gcc`` crée une déclaration implicite des fonctions de la librairie C. Il n'affiche qu'un warning.
 
-#. Lorsque j'exécute le programme corrigé du point `3` dans une console, j'ai accès à plusieurs variables. L'une d'elles est ``$?`` qui permet de récupérer la valeur de retour du dernier programme exécuté. Expliquez à quoi sert cette valeur.
+#. Lorsque j'exécute le programme corrigé du point `6` dans une console, j'ai accès à plusieurs variables. L'une d'elles est ``$?`` qui permet de récupérer la valeur de retour du dernier programme exécuté. Expliquez à quoi sert cette valeur.
 
         .. code-block:: console
 
@@ -133,7 +139,7 @@ que vous aviez réalisé en Java.
                         ``-Wall``
                                 This enables all the warnings about constructions that some users consider questionable, and that are easy to avoid (or modify to prevent the warning), even in conjunction with macros.
 
-#. Recompilez le code corrigé du point `3` avec les options ``-Wall`` et ``-Werror``, que se passe-t-il ? Que faut-il rajouter dans le code pour qu'il compile sans erreurs ?
+#. Recompilez le code corrigé du point `6` avec les options ``-Wall`` et ``-Werror``, que se passe-t-il ? Que faut-il rajouter dans le code pour qu'il compile sans erreurs ?
 
         .. only:: staff
 
@@ -142,43 +148,43 @@ que vous aviez réalisé en Java.
                         ``-Wall``: warning si une fonction ne renvoie pas de valeur. Il faut donc ajouter ``return 0;`` à la fin de la ``main``.
 
 
-.. only:: staff
+        .. only:: staff
 
-          #. Compilez le code suivant (sans les options ``-Wall`` et ``-Werror``). Expliquez ce que sont les arguments de la fonction ``main``. Expliquez ce que fait `atoi(3)`_ (voir `strtol(3)`_ pour une fonction similaire). Exécutez ensuite le code avec ou sans arguments. Qu'observez-vous ? Comment se protéger du fait qu'un utilisateur ne va pas forcément rentrer le bon nombre d'arguments ?
+                  #. Compilez le code suivant (sans les options ``-Wall`` et ``-Werror``). Expliquez ce que sont les arguments de la fonction ``main``. Expliquez ce que fait `atoi(3)`_ (voir `strtol(3)`_ pour une fonction similaire). Exécutez ensuite le code avec ou sans arguments. Qu'observez-vous ? Comment se protéger du fait qu'un utilisateur ne va pas forcément rentrer le bon nombre d'arguments ?
 
-             .. code-block:: c
+                     .. code-block:: c
 
-                #include <stdlib.h>
-                int main(int argc, const char *argv[])
-                {
-                        int a = atoi(argv[1]);
-                        printf("%d\n", a);
-                }
+                        #include <stdlib.h>
+                        int main(int argc, const char *argv[])
+                        {
+                                int a = atoi(argv[1]);
+                                printf("%d\n", a);
+                        }
 
-                .. note::
+                        .. note::
 
-                        ``argc`` = nombre d'arguments.
-                        ``argv`` = tableau de chaine de caractère contenant le nom de l'exécutable suivi des arguments.
-                        ``atoi`` = transforme une chaine de caractère en un entier.
-                        Le programme renvoi une segmentation fault lorsque l'on ne passe pas d'argument. Il faut donc utiliser ``argc`` pour tester que l'on a le bon nombre d'argument.
+                                ``argc`` = nombre d'arguments.
+                                ``argv`` = tableau de chaine de caractère contenant le nom de l'exécutable suivi des arguments.
+                                ``atoi`` = transforme une chaine de caractère en un entier.
+                                Le programme renvoi une segmentation fault lorsque l'on ne passe pas d'argument. Il faut donc utiliser ``argc`` pour tester que l'on a le bon nombre d'argument.
 
 
-.. only:: staff
+        .. only:: staff
        
-          #. Ecrivez un programme qui va itérer (avec une boucle ``for`` et une boucle ``while``) et afficher tous les arguments qui lui sont passés à la sortie standard.
+                  #. Ecrivez un programme qui va itérer (avec une boucle ``for`` et une boucle ``while``) et afficher tous les arguments qui lui sont passés à la sortie standard.
 
-                .. note::
+                        .. note::
 
-                        .. code-block:: c
+                                .. code-block:: c
 
-                                #include <stdio.h>
-                                int main(int argc, const char *argv[])
-                                {
-                                        int i;
-                                        for (i = 1; i < argc; i++)
-                                                printf("%s\n", argv[i]);
-                                        return 0;
-                                }
+                                        #include <stdio.h>
+                                        int main(int argc, const char *argv[])
+                                        {
+                                                int i;
+                                                for (i = 1; i < argc; i++)
+                                                        printf("%s\n", argv[i]);
+                                                return 0;
+                                        }
 
 #. Ecrivez deux programmes qui réagissent de façon similaire à `true(1)`_ et `false(1)`_ en utilisant `exit(3)`_. Vous pouvez tester le bon fonctionnement de votre programme en exécutant le code suivant dans une console:
 
@@ -289,4 +295,4 @@ systématique de ce genre d'outils vous évitera bon nombre d'erreurs fréquente
 
           #. ! -z au lieu de -n
 
-          #. < au lieu de -lt . Cette erreur n'est pas détectée par ShellCheck.
\ No newline at end of file
+          #. < au lieu de -lt . Cette erreur n'est pas détectée par ShellCheck.