假設你一維陣列的大小為100
你需要把它拆分為20*5的乙個二維矩陣。
不妨這樣去實現:
假設一維陣列的下標為x,可以把它在邏輯上轉換為二維陣列的下標:
m = x / 5
n = x % 5
比如你要找第一行第二列的元素,那在一維陣列中就是a[1]
轉化為二維座標就是b[0][1]。
其實多維陣列和一維陣列一樣,在計算機中都是用的一段連續的記憶體。只是他們的表現形式不一樣。
另外,c裡邊沒有動態的二維陣列,第二維的大小必須指定的。
引用這個二維矩陣的時候,直接使用b[3][4]來引用第三行第四列的元素?
用巨集定義(以下巨集定義並沒有上機除錯,只是提供思路)
#define b[(x)][(y)] a[((x*m)+(y%n)]
解釋一下:x*m,加入你需要b[3][4],那麼就是對應一維陣列第3*8+4%9=28個元素。
**一:
#include
int max,min;
int maxi,maxj,mini,minj;
void main()
void result(int x[5],int m,int n)
if(x[i][j]
}
}
但**一有個缺點,那就是如果有多個最值,只能輸出最後乙個。下面的**是經過改進的。
**二:
#includeint max,min;
int maxi,maxj,mini,minj;
void main()
void result(int x[5],int m,int n)
for(i=0;ifor(j=0;j
if(x[i][j]==min)
}
}
一維陣列轉二維陣列
在專案上,會遇到將乙個一維陣列的資料,按板塊的分布排版這一類的需求。這種需求的資料往往就是陣列元素中含有相同字段,以這相同字段分類即可達到需求。以以下資料為例 將let oldarr 轉換為 let newarr 即將乙個一維陣列轉為二維陣列 不難發現,部分陣列元素字段存在相同的值,我們以type來...
一維陣列轉二維陣列
vue專案中經驗 1.後台傳送過來的json檔案是一維陣列 2.我需要像swiper傳遞過去資料 注 我的swiper裡面放的不是,而是乙個個小小的選項 如下圖 一頁存放8個,有2頁,但是傳遞給我的json資料是乙個一維陣列所以需要改成二維陣列 然後再v for這個二維陣列,之後再v for取出小o...
一維陣列轉二維陣列
使用場景舉例 介面返回乙個陣列物件,展示時每行固定顯示n個,則可將返回的陣列轉成二維陣列 n n 的形式迴圈展示。a.陣列元素為基本型別 let basearray 1,2,3,4,5,6,7,8 len len basearray.length let n 4 假設每行顯示4個 let linen...