Vérification de la matrice creuse

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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.c vous-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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/ControlFlowGroup -.-> c/if_else("If...Else") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/CompoundTypesGroup -.-> c/arrays("Arrays") c/UserInteractionGroup -.-> c/user_input("User Input") subgraph Lab Skills c/if_else -.-> lab-123224{{"Vérification de la matrice creuse"}} c/for_loop -.-> lab-123224{{"Vérification de la matrice creuse"}} c/arrays -.-> lab-123224{{"Vérification de la matrice creuse"}} c/user_input -.-> lab-123224{{"Vérification de la matrice creuse"}} end

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.