Verificación de matriz dispersa

CBeginner
Practicar Ahora

Introducción

Una matriz dispersa es una matriz en la que el número de 0's es mayor que el número de elementos no nulos. En este laboratorio paso a paso, aprenderemos a verificar si una matriz bidimensional es una matriz dispersa o no utilizando el lenguaje de programación C.

Nota: Debes crear el archivo ~/project/main.c tú mismo para practicar la codificación y aprender a compilar y ejecutarlo utilizando gcc.

cd ~/project
## crear main.c
touch main.c
## compilar main.c
gcc main.c -o main
## ejecutar main
./main

Creación de una matriz bidimensional

En este paso, crearemos una matriz bidimensional para almacenar los elementos de nuestra matriz. Pediremos la entrada del usuario para el número de filas y columnas y luego le pediremos al usuario que ingrese los elementos de la matriz uno por uno utilizando un bucle for anidado.

#include <stdio.h>

int main()
{
   int matrix[10][10], row, column, i, j;
   printf("Ingrese el número de filas y columnas de la matriz:\n");
   scanf("%d%d", &row, &column);

   printf("Ingrese los elementos de la matriz:\n");
   for (i = 0; i < row; i++)
   {
      for (j = 0; j < column; j++)
      {
         scanf("%d", &matrix[i][j]);
      }
   }

   // Verificando si la matriz es dispersa o no
    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 matriz es una matriz dispersa\n");
    else
        printf("La matriz no es una matriz dispersa\n");

   return 0;
}

Imprimir la matriz

Aquí, imprimiremos la matriz utilizando el bucle for anidado en el que ya hemos tomado la entrada del usuario.

#include <stdio.h>

int main()
{
   int matrix[10][10], row, column, i, j;
   printf("Ingrese el número de filas y columnas de la matriz:\n");
   scanf("%d%d", &row, &column);

   printf("Ingrese los elementos de la matriz:\n");
   for (i = 0; i < row; i++)
   {
      for (j = 0; j < column; j++)
      {
         scanf("%d", &matrix[i][j]);
      }
   }

   // Imprimiendo la matriz
   printf("La matriz:\n");
   for (i = 0; i < row; i++)
   {
      for (j = 0; j < column; j++)
      {
         printf("%d ", matrix[i][j]);
      }
      printf("\n");
   }

   // Verificando si la matriz es dispersa o no
    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 matriz es una matriz dispersa\n");
    else
        printf("La matriz no es una matriz dispersa\n");

   return 0;
}

Completar el programa

Aquí agregaremos los toques finales a nuestro programa. Verificaremos si la matriz proporcionada por el usuario es una matriz dispersa o no. Luego imprimiremos el resultado de si es una matriz dispersa o no.

#include <stdio.h>

int main()
{
   int matrix[10][10], row, column, i, j;
   printf("Ingrese el número de filas y columnas de la matriz:\n");
   scanf("%d%d", &row, &column);

   printf("Ingrese los elementos de la matriz:\n");
   for (i = 0; i < row; i++)
   {
      for (j = 0; j < column; j++)
      {
         scanf("%d", &matrix[i][j]);
      }
   }

   // Imprimiendo la matriz
   printf("La matriz:\n");
   for (i = 0; i < row; i++)
   {
      for (j = 0; j < column; j++)
      {
         printf("%d ", matrix[i][j]);
      }
      printf("\n");
   }

   // Verificando si la matriz es dispersa o no
    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 matriz es una matriz dispersa\n");
    else
        printf("La matriz no es una matriz dispersa\n");

   return 0;
}

Resumen

En este laboratorio paso a paso, hemos aprendido cómo verificar si una matriz bidimensional es dispersa o no. Hemos aprendido sobre el concepto de una matriz dispersa y cómo codificar en el lenguaje de programación C para determinar si una matriz es dispersa o no. Creamos una matriz bidimensional, tomamos la entrada del usuario, imprimimos la matriz y, finalmente, escribimos la lógica para comprobar si la matriz proporcionada es dispersa o no.