这是我的尝试。我不完全确定我对指针的操作。也许这就是我错的原因,也许还有其他情况。我想从用户那里获取尺寸并创建一个方阵,对其元素进行一些操作,并向用户显示原始数据和结果。上次我通过创建一个 100x100 数组并指定每行的结尾以及由常量指定行的结尾来完成此操作。然后我会打印直到这个常数的所有元素。但为 4x4 矩阵创建 100x100 数组似乎不太正确。我可以创建一个更小的数组,但这似乎不是解决问题的正确方法。 C 中是否有一种方法可以创建一个与用户指定的大小完全相同的二维数组(它将是一个方形数组)。谢谢
#include <stdio.h>
#include <stdlib.h>
double * createMatrix(int dimentions);
void drawMatrix(double * matrix);
int main(void)
{
int n, i, j;
system("cls");
system("color 70");
system("pause");
puts("Enter the matrix's dimension");
scanf("%i", &n);
double * pmatrix = createMatrix(n);
for (i = 0; i < n; ++j)
for (j = 0; j < n; ++j)
{
printf("A%i%i: ", i + 1, j + 1);
scanf("%lf", pmatrix[i][j]);
getchar();
}
for (i = 0; i < n; ++i)
{
putchar('\n');
for (j = 0; j < n; ++j)
printf(" %lf ", &pmatrix[i][j]);
}
system("color 08");
return 0;
}
double * createMatrix(int n)
{
const int N = n;
const int N1 = N;
double matrix[N][N];
double * pmatrix = matrix;
return pmatrix;
}
最佳答案
可以直接创建矩阵;你不需要一个函数来做到这一点。替换代码
double * pmatrix = createMatrix(n);
通过声明二维数组的常规方式:
double matrix[n][n];
关于c - 如何创建一个二维数组,其尺寸由用户指定? (在C中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26241199/