C语言用堆空间输入方阵元素,不能用到数组,的代码
时间: 2024-03-04 12:53:35 浏览: 14
可以使用动态内存分配的方式来实现堆空间的输入,以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
printf("请输入方阵的阶数:");
scanf("%d", &n);
// 分配堆空间
int **matrix = (int **)malloc(n * sizeof(int *));
for (int i = 0; i < n; i++) {
matrix[i] = (int *)malloc(n * sizeof(int));
}
// 从堆空间读取输入
printf("请输入方阵的元素:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 打印输出
printf("输入的方阵为:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// 释放堆空间
for (int i = 0; i < n; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}
```
这个程序中,我们首先通过 `malloc` 分配了一个二维指针 `matrix`,它指向一个 `n * n` 的方阵。然后,我们使用两重循环从堆空间读取输入,并打印输出。最后,我们使用 `free` 释放了分配的堆空间。