
Ecole Supérieure des Sciences Appliquées d'Alger 2019/2020
Programmation en langage C 1ère année
Cours élaboré par : C. DIB 1 Les fonctions en C
Chapitre 2 : Les fonctions en C
1. Introduction :
Selon la complexité des problèmes à résoudre, un programme C peut dépasser une ou deux pages, nous
obtenons ainsi de longues listes d'instructions, peu structurées et par conséquent peu compréhensibles.
En plus, certaines suites d’instructions se répètent plusieurs fois dans le programme, ce qui entraîne un
gaspillage d’espace mémoire.
Pour bien structurer un programme C, le rendre plus lisible, plus compréhensible et plus fiable, on le
découpe en parties et sous p arties (en modules). Ces différentes parties s’appellent « fonctions ou actions
paramétrées ». Tout programme C contient obligatoirement une fonction principale main (), et p eut faire
appel à d’autres fonctions secondaires qui peuvent être soit des fonctions prédéfinies dans les
bibliothèques standards, et prêtes à utiliser (comme la fonction pow(), sqrt(), … de la bibliothèque
math.h), ou des fonctions définies par l’utilisateur que l’on va voir dans ce chapitre.
2. Déclaration et appel des fonctions en C :
2.1 Déclaration des fonctions avant main () :
Dans ce cas, la fonction tout entière, en-tête et corps, est déclarée avant la fonction principale main ().
Type_retour nom_fonction (type 1 p aramètre1, type 2 paramètre 2, … )
{ Déclaration des variables locales.
Les instructions.
return valeur_retour }
L’appel d’une fonction se fait soit à travers l’affectation de son nom avec ses paramètres d’appel
(sans les types) dans une variable de même type de retour, ou à travers l’utilisation directe de son
nom avec ses paramètres d’appel dans une expression ou un affichage.
L’ordre et le type des paramètres d’appel doivent concorder avec les paramètres de la déclaration.
Exemple 1 :
Ecrire un programme C qui calcule et affiche l’expression S =n !+m !+k !
S ol uti on 1 : (sans fonctions)
#include<stdio.h>
int main()
{ int n,m,k,i,fn=1,fm=1,fk=1;
do{ puts("Donnez un entier positif");
scanf("%d",&n); } while(n<0);
do{ puts("Donnez un entier positif");
scanf("%d",&m); } while(m<0);
do{ puts("Donnez un entier positif");
scanf("%d",&k); } while(k<0);
for(i=1;i<=n;i++) fn*=i;
for(i=1;i<=m;i++) fm*=i;
for(i=1;i<=k;i++) fk*=i;
printf("%d!+%d!+%d!=%d\n",n,m,k,fn+fm+fk);
return 0;}
En-tête de la fonction
Corps de la fonction