c语言通过定义二维数组输出可变层数的数字方阵
时间: 2024-12-26 15:29:44 浏览: 2
在C语言中,输出可变层数的数字方阵可以使用嵌套循环和动态内存分配来实现。如果你想要创建一个多行多列的矩阵,你可以使用一个结构来存储每个元素,并使用指针动态地为每一层分配内存。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个结构来存储元素
typedef struct {
int value;
} Cell;
// 动态分配数组并填充值
void createMatrix(int rows, int cols) {
// 创建一个二维数组的指针
Cell** matrix = (Cell**)malloc(rows * sizeof(Cell*));
for (int i = 0; i < rows; ++i) {
// 对于每一行,再动态分配一维数组的空间
matrix[i] = (Cell*)malloc(cols * sizeof(Cell));
// 初始化元素
for (int j = 0; j < cols; ++j) {
matrix[i][j].value = i + j + 1; // 可以替换为你需要的数字
}
}
// 输出矩阵
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
printf("%d ", matrix[i][j].value);
}
printf("\n"); // 换行
}
// 清理内存
for (int i = 0; i < rows; ++i) {
free(matrix[i]);
}
free(matrix);
}
int main() {
int rows, cols;
printf("请输入矩阵的行数和列数:\n");
scanf("%d %d", &rows, &cols);
if (rows > 0 && cols > 0) { // 验证输入的有效性
createMatrix(rows, cols);
} else {
printf("无效的输入!\n");
}
return 0;
}
```
阅读全文