Introduction
Une matrice creuse est une matrice dans laquelle le nombre de 0 est supérieur au nombre d'éléments non nuls. Dans ce laboratoire étape par étape, nous allons apprendre à vérifier si un tableau à deux dimensions est une matrice creuse ou non en utilisant le langage de programmation C.
Note: Vous devez créer le fichier
~/project/main.cvous-même pour pratiquer la programmation et apprendre à le compiler et à l'exécuter en utilisant gcc.
cd ~/project
## créer main.c
touch main.c
## compiler main.c
gcc main.c -o main
## exécuter main
./main
Création d'un tableau à deux dimensions
Dans cette étape, nous allons créer un tableau à deux dimensions pour stocker les éléments de notre matrice. Nous allons demander à l'utilisateur de saisir le nombre de lignes et de colonnes, puis nous lui demanderons d'entrer les éléments de la matrice un par un en utilisant une boucle for imbriquée.
#include <stdio.h>
int main()
{
int matrix[10][10], row, column, i, j;
printf("Entrez le nombre de lignes et de colonnes de la matrice :\n");
scanf("%d%d", &row, &column);
printf("Entrez les éléments de la matrice :\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &matrix[i][j]);
}
}
// Vérification si la matrice est creuse ou non
int counter = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
if (matrix[i][j] == 0)
counter++;
}
}
if(counter > (row * column) / 2)
printf("La matrice est une matrice creuse\n");
else
printf("La matrice n'est pas une matrice creuse\n");
return 0;
}
Afficher la matrice
Ici, nous allons afficher la matrice en utilisant la boucle for imbriquée dans laquelle nous avons déjà demandé des entrées à l'utilisateur.
#include <stdio.h>
int main()
{
int matrix[10][10], row, column, i, j;
printf("Entrez le nombre de lignes et de colonnes de la matrice :\n");
scanf("%d%d", &row, &column);
printf("Entrez les éléments de la matrice :\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &matrix[i][j]);
}
}
// Affichage de la matrice
printf("La matrice :\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// Vérification si la matrice est creuse ou non
int counter = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
if (matrix[i][j] == 0)
counter++;
}
}
if(counter > (row * column) / 2)
printf("La matrice est une matrice creuse\n");
else
printf("La matrice n'est pas une matrice creuse\n");
return 0;
}
Terminer le programme
Ici, nous allons apporter les derniers ajustements à notre programme. Nous allons vérifier si la matrice fournie par l'utilisateur est une matrice creuse ou non. Nous afficherons ensuite le résultat indiquant si c'est une matrice creuse ou non.
#include <stdio.h>
int main()
{
int matrix[10][10], row, column, i, j;
printf("Entrez le nombre de lignes et de colonnes de la matrice :\n");
scanf("%d%d", &row, &column);
printf("Entrez les éléments de la matrice :\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &matrix[i][j]);
}
}
// Affichage de la matrice
printf("La matrice :\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// Vérification si la matrice est creuse ou non
int counter = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
if (matrix[i][j] == 0)
counter++;
}
}
if(counter > (row * column) / 2)
printf("La matrice est une matrice creuse\n");
else
printf("La matrice n'est pas une matrice creuse\n");
return 0;
}
Résumé
Dans ce laboratoire étape par étape, nous avons appris à vérifier si un tableau à deux dimensions est creux ou non. Nous avons étudié le concept d'une matrice creuse et la manière de coder en langage C pour déterminer si une matrice est creuse ou non. Nous avons créé un tableau à deux dimensions, demandé des entrées à l'utilisateur, affiché la matrice et finalement, écrit la logique pour vérifier si la matrice fournie est creuse ou non.



