简介
稀疏矩阵(Sparse matrix)是指矩阵中 0 的数量多于非零元素数量的矩阵。在这个逐步的实验中,我们将学习如何使用 C 语言编程来检查一个二维数组是否是稀疏矩阵。
注意:你需要自己创建文件
~/project/main.c
来练习编码,并学习如何使用 gcc 编译和运行它。
cd ~/project
## 创建 main.c
touch main.c
## 编译 main.c
gcc main.c -o main
## 运行 main
./main
稀疏矩阵(Sparse matrix)是指矩阵中 0 的数量多于非零元素数量的矩阵。在这个逐步的实验中,我们将学习如何使用 C 语言编程来检查一个二维数组是否是稀疏矩阵。
注意:你需要自己创建文件
~/project/main.c
来练习编码,并学习如何使用 gcc 编译和运行它。
cd ~/project
## 创建 main.c
touch main.c
## 编译 main.c
gcc main.c -o main
## 运行 main
./main
在这一步中,我们将创建一个二维数组来存储矩阵元素。我们将通过用户输入获取矩阵的行数和列数,然后使用嵌套的 for 循环让用户逐个输入矩阵元素。
#include <stdio.h>
int main()
{
int matrix[10][10], row, column, i, j;
printf("请输入矩阵的行数和列数:\n");
scanf("%d%d", &row, &column);
printf("请输入矩阵的元素:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &matrix[i][j]);
}
}
// 检查矩阵是否为稀疏矩阵
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("该矩阵是稀疏矩阵\n");
else
printf("该矩阵不是稀疏矩阵\n");
return 0;
}
在这里,我们将使用嵌套的 for 循环打印矩阵,其中我们已经获取了用户的输入。
#include <stdio.h>
int main()
{
int matrix[10][10], row, column, i, j;
printf("请输入矩阵的行数和列数:\n");
scanf("%d%d", &row, &column);
printf("请输入矩阵的元素:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &matrix[i][j]);
}
}
// 打印矩阵
printf("矩阵:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// 检查矩阵是否为稀疏矩阵
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("该矩阵是稀疏矩阵\n");
else
printf("该矩阵不是稀疏矩阵\n");
return 0;
}
在这里,我们将为程序添加最后的完善部分。我们将检查用户提供的矩阵是否为稀疏矩阵,并打印结果以显示它是否是稀疏矩阵。
#include <stdio.h>
int main()
{
int matrix[10][10], row, column, i, j;
printf("请输入矩阵的行数和列数:\n");
scanf("%d%d", &row, &column);
printf("请输入矩阵的元素:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
scanf("%d", &matrix[i][j]);
}
}
// 打印矩阵
printf("矩阵:\n");
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// 检查矩阵是否为稀疏矩阵
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("该矩阵是稀疏矩阵\n");
else
printf("该矩阵不是稀疏矩阵\n");
return 0;
}
在这个逐步的实验中,我们学习了如何检查一个二维数组是否为稀疏矩阵。我们了解了稀疏矩阵的概念,并学习了如何使用 C 语言编写代码来判断一个矩阵是否为稀疏矩阵。我们创建了一个二维数组,获取了用户输入,打印了矩阵,并最终编写了逻辑来检查提供的矩阵是否为稀疏矩阵。