Avec des exercices corrigés en langage C, vous pratiquerez divers concepts du langage C. Vous commencerez par des exercices langage C de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Vous pouvez utiliser l’éditeur C suivant pour résoudre les exercices suivants: (Cliquez sur l’onglet input si vous souhaitez entrer des valeurs, cliquez sur Run pour exécuter votre programme, le résultat sera affichée sur l’onglet output).
Exercice 1:
Ecrire un programme C qui trouve la somme de N nombres entrés par l’utilisateur en utilisant un tableau.
Exemple:
Entrez le nombre d'entiers que vous souhaitez additionner: 3
Entrez les 3 éléments :
1
2
3
Sortie prévue:
La somme est 6
Solution:
#include<stdio.h>
int main()
{
int size, s = 0, c, tab[50];
printf("Entrez le nombre d'entiers que vous souhaitez additionner: ");
scanf("%d", &size);
printf("Entrez les %d éléments : \n", size);
for(c = 0; c < size; c++)
{
scanf("%d", &tab[c]);
s += tab[c];
}
printf("La somme est %d", s);
return 0;
}
Exercice 2:
Ecrire un programme C pour trier les éléments d’un tableau.
Exemple:
Entrez le nombre d'éléments que vous souhaitez trier: 5
Entrez les 5 éléments :
9
6
1
4
2
Sortie prévue:
Le tableau trié = 1 2 4 6 9
Solution:
#include<stdio.h>
void sort(int *tab, int size)
{
int i, j, tmp;
for(i = 1; i <= size-1; i++)
{
for(j = 0; j < size-i; j++)
{
if(tab[j] > tab[j+1])
{
tmp = tab[j];
tab[j] = tab[j+1];
tab[j+1] = tmp;
}
}
}
}
void main()
{
int tab[50], i, n;
printf("Entrez le nombre d'éléments que vous souhaitez trier: ");
scanf("%d", &n);
printf("Entrez les %d éléments : \n", n);
for(i = 0; i < n; i++)
scanf("%d", &tab[i]);
sort(tab, n);
printf("Le tableau trié = ");
for(i = 0; i < n; i++)
printf("%d ", tab[i]);
}
Exercice 3:
Ecrire un programme C pour calculer le déterminant d’une matrice 2 x 2.
[[a, b],
[c, d]]
Le déterminant de la matrice ci-dessus est: ad – bc:
Exemple:
Entrez les 4 éléments du tableau
7
1
5
3
Sortie prévue:
La matrice saisie est:
7 1
5 3
Le déterminant de la matrice 2x2 est : 21 - 5 = 16
Solution:
#include<stdio.h>
int main()
{
int m[2][2], i, j;
long det;
printf("Entrez les 4 éléments du tableau\n");
for(i = 0; i < 2; i++)
for(j = 0; j < 2; j++)
scanf("%d", &m[i][j]);
printf("La matrice saisie est: \n\n");
for(i = 0; i < 2; i++)
{
for(j = 0; j < 2; j++)
{
printf("%d\t", m[i][j]);
}
printf("\n");
}
// trouver le déterminant d'une matrice 2x2
det = m[0][0]*m[1][1] - m[1][0]*m[0][1];
printf("Le déterminant de la matrice 2x2 est : %d - %d = %d",
m[0][0]*m[1][1], m[1][0]*m[0][1], det);
return 0;
}
Exercice 4:
Ecrire un programme C pour trouver le factorielle d’un nombre en utilisant la récursivité. La récursivité se produit lorsqu’une instruction dans une fonction s’appelle elle-même plusieurs fois.
Exemple:
Entrez un nombre: 3
Sortie prévue:
Factorielle de 3 est 6
Solution:
#include<stdio.h>
int fact(int n)
{
if(n==1 || n==0)
return 1;
else
return (n*fact(n-1));
}
int main()
{
int n, f;
printf("Entrez un nombre: ");
scanf("%d", &n);
f = fact(n);
printf("Factorielle de %d est %d", n, f);
return 0;
}
#include<stdio.h>
int pgcd(int a, int b)
{
if(a > b)
pgcd(a-b, b);
else if(b > a)
pgcd(a, b-a);
else
return a;
}
int main()
{
int a, b, res;
printf("Entrez deux nombres pour trouver le PGCD : ");
scanf("%d%d", &a, &b);
res = pgcd(a, b);
printf("Le PGCD de %d et %d est: %d", a, b, res);
return 0;
}