我具有由一個維陣列表示的矩陣,隔空矩陣的轉置中下用一維數組
例如:
矩陣
0 1 2 3
4 5 6 7
8 9 10 11
陣列
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
現在給我想找到這個轉置矩陣和陣列的尺寸,即
0, 4, 8, 1, 5, 9, 2, 6, 10, 3, 7, 11
我用C工作,這裏是我的代碼
#include <stdlib.h>
#include <stdio.h>
void transpose(int *array, int m, int n){
int new_array[12];
for (int i=0; i<m*n; i++) {
new_array[i] = ??;
}
for (int i=0; i<m*n; i++) {
array[i] = new_array[i];
}
}
void print_array(int array[], int size){
for (int i=0; i<size; i++) {
printf("%d\n",array[i]);
}
}
int main(){
int array[12];
for (int i=0; i<12; i++) {
array[i]=i;
}
print_array(array,12);
transpose(array,3,4);
print_array(array,12);
return 0;
}
我已經嘗試了十幾次都失敗了。有沒有簡單的方法來做到這一點,我錯過了?
在你轉函數,如果你像這樣聲明'new_array',絕對沒有理由將'm'和'n'作爲參數。相反,做'new_array [N * M]'這更有意義 –