下面是代碼,用於2D陣列A,B,C:轉換2D陣列到1D
#include <stdio.h>
int main(){
int a[2][2]=
{
{1, 1},
{2, 2}
};
int b[2][2]=
{
{1, 1},
{2, 2}
};
int c[2][2]=
{
{1, 1},
{2, 2}
};
//Loop for 2D
int i,j,k, n=2;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
for (k = 0; k < n; k++) {
c[i][j] += a[i][k] * b[k][j];
printf("%i ",c[i][j]);
}
}
}
}
結果是:2 4 2 4 4 8 4 8
我寫這代碼,它將數組c [i] [j]轉換爲一維數組。運行後,我得不到相同的結果。
//Loop for 1D
int i,j,k, n=2, result[50];
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
for (k = 0; k < n; k++) {
result[k] = c[i][j];
result[k] += a[i][k] * b[k][j];
printf("%i ", result[k]);
}
}
}
這個循環的結果是:2個3 2 3 4 6 4 6
用這個我得到結果:2 3 2 3 4 6 4 6而不是:2 4 2 4 4 8 4 8 –
好的,讓我爲你解決它:D,你應該基本上在這個循環之前保存'c'結果。 :)) – Mehdi
是的,它的工作非常感謝你。我在for(k = 0; k