c语言怎么生成一个二维矩阵矩阵大小未知
时间: 2024-05-06 09:02:14 浏览: 153
在 C 语言中,可以使用动态内存分配来生成一个二维矩阵,其大小未知。具体步骤如下:
1. 定义指向二维矩阵的指针变量;
2. 动态分配矩阵所需的内存空间,即使用 malloc 函数在堆上分配一块连续的内存空间;
3. 使用循环遍历二维矩阵,为每个元素赋初值。
下面是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, rows, cols;
int **matrix;
printf("Enter the number of rows: ");
scanf("%d", &rows);
printf("Enter the number of columns: ");
scanf("%d", &cols);
// 动态分配内存空间
matrix = (int **)malloc(rows * sizeof(int *));
for (i = 0; i < rows; i++) {
matrix[i] = (int *)malloc(cols * sizeof(int));
}
// 赋初值
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
matrix[i][j] = i * cols + j + 1; // 以行优先的方式存储矩阵元素
}
}
// 输出矩阵
printf("The matrix is:\n");
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
// 释放内存空间
for (i = 0; i < rows; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}
```
在上面的示例代码中,我们先使用 scanf 函数获取用户输入的矩阵行数和列数,然后动态分配内存空间,并使用双重循环为每个元素赋初值。最后,我们输出矩阵并释放内存空间。
阅读全文