【发布时间】:2017-08-03 19:53:43
【问题描述】:
我的输入应该是这样的:
n array1 array2 array3 array4 ... arrayn
其中 n 是一个整数,array1 .. arrayn 是数组。数组总是有 4 个元素。 我可以这样做:
int n,array[100][4];
for(int i=0;i<=n-1;i++)
{
for(int j=0;j<=3;j++)
{
scanf("%d",&array[i][j]);
}
}
但这是一个矩阵,我认为有更好的解决方案,但我真的想不出...
【问题讨论】:
-
矩阵有什么问题?
-
旁注:你不想
scanf("%d",&array[i][j]);吗? -
@Barmar 我需要学习尽可能多地节省空间/内存......我只是在寻找其他替代方案,我的大脑拒绝想出不同的东西。
-
@CraigEstey 是的,对不起,谢谢,我会编辑它
-
VLA 是否有帮助:(例如)
int n = 100; int array[n][4];?或者,如果n对堆栈来说太大,则执行int *array = malloc(n * 4 * sizeof(int));,然后手动执行您自己的二维索引(例如)#define ARRAY(y,x) array[((y) * 4) + (x)],然后使用ARRAY(i,j)