C语言生成随机稀疏矩阵
时间: 2023-12-03 13:38:57 浏览: 237
生成随机稀疏矩阵的C语言代码如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 5 // 矩阵行数
#define COL 5 // 矩阵列数
#define SPARSITY 0.5 // 稀疏度
int main()
{
int matrix[ROW][COL] = {0}; // 初始化矩阵
int i, j, count = 0;
srand((unsigned)time(NULL)); // 设置随机数种子
// 随机生成稀疏矩阵
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
if ((double)rand() / RAND_MAX < SPARSITY) { // 判断是否为非零元素
matrix[i][j] = rand() % 10 + 1; // 随机生成1~10之间的整数
count++; // 统计非零元素个数
}
}
}
// 输出稀疏矩阵
printf("Sparse Matrix:\n");
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("Non-zero elements: %d\n", count); // 输出非零元素个数
return 0;
}
```
该代码中,通过设置稀疏度来控制矩阵中非零元素的个数,稀疏度越大,非零元素越少。同时,使用随机数生成器来随机生成非零元素的值,保证了生成的矩阵是随机的。
阅读全文