這是我的嘗試。我不完全肯定我用指針操作。也許這就是爲什麼我錯了,也許還有其他一些情況。我想從用戶那裏獲取維度並創建一個矩形矩陣,對其元素進行一些操作,並將原始結果和結果顯示給用戶。上次我通過創建一個100x100數組來完成這個任務,並且通過常量指定每行的結尾和行尾。然後,我會打印所有元素達到這個常量。但爲4x4矩陣創建100x100陣列似乎並不正確。我可以創建一個更小的陣列,但這似乎不是解決問題的正確方法。有沒有辦法在C創建一個完全由用戶指定大小的二維數組(它將是一個方形數組)。謝謝如何創建一個二維數組,其維度由用戶指定? (在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;
}
C中沒有辦法創建具有運行時維的標準二維數組。它必須動態完成。 – wallyk 2014-10-07 16:57:53
@wallyk type arr [a] [b];其中a和b是局部變量。 – 2501 2014-10-07 16:58:37
你現在的代碼有什麼問題? – gaurav5430 2014-10-07 17:00:28