直接的方法可以看看下面的方式
#include <stdio.h>
#define N 5
int main(void)
{
int a[N] = { 3, 2, 2, 4, 5 };
int b[N] = { 6, 3, 1, 2, 9 };
int c[N][2];
for (size_t i = 0; i < N; i++)
{
c[i][0] = a[i]; c[i][1] = b[i];
}
for (size_t i = 0; i < N; i++) printf("%d, %d\n", c[i][0], c[i][1]);
return 0;
}
程序輸出是
3, 6
2, 3
2, 1
4, 2
5, 9
如果你想寫一個將合併陣列功能它可以看起來像
#include <stdio.h>
#include <stdlib.h>
#define N 5
int ** merge(int *a, int *b, size_t n)
{
int **c = malloc(n * sizeof(int *));
if (c != NULL)
{
size_t i = 0;
for (; i < n && (c[i] = malloc(2 * sizeof(int))); i++)
{
c[i][0] = a[i]; c[i][1] = b[i];
}
if (i != n)
{
while (i--) free(c[i]);
free(c);
c = NULL;
}
}
return c;
}
int main(void)
{
int a[N] = { 3, 2, 2, 4, 5 };
int b[N] = { 6, 3, 1, 2, 9 };
int **c;
c = merge(a, b, N);
if (c != NULL)
{
for (size_t i = 0; i < N; i++) printf("%d, %d\n", c[i][0], c[i][1]);
for (size_t i = 0; i < N; i++) free(c[i]);
free(c);
}
return 0;
}
程序outp ut將如上所示。
什麼是在PHP代碼? C代碼非常相似 –
你測試的循環未成功的地方在哪裏? –
目前還不清楚是否要以編程方式創建2-D數組,或者只是並排打印兩個輸入數組。 –