[英]C reverse rows in array
我將矩陣表示為一維數組。 例如,數組的大小是 w*h,其中 w 是寬度 ah 是高度,假設矩陣的大小為 4*4
unsigned int new = (w*h)-w;
unsigned int old = 0;
for (unsigned int a=0; a< h; a++)
{
for (unsigned int b =0; b< w; b++)
{
data[new] = input[old];
old++;
new++;
}
new -= w*2;
}
它工作得很好,可以倒置我的數組(垂直),但我不知道我應該在代碼中改變什么來水平翻轉數組 - 這將是一些小的變化,但我看不到它
將數組更改為 2d 是可能的,但data
是 struct 類型提前謝謝
首先要做的事情:如果你寫更多描述性的話會更好:當前輸入,當前 output 和所需的 output。 我猜,你的代碼是這樣做的:
`input` array
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
`data` array
12 13 14 15
8 9 10 11
4 5 6 7
0 1 2 3
我想,你想要得到的是:
3 2 1 0
7 6 5 4
11 10 9 8
15 14 13 12
只需編寫它,您就會看到,您只需要反轉每一行。 因此,您需要反轉input
數組的每個 w 元素(因為每個w
元素代表一行)。 我認為不需要為此編寫代碼解決方案(您已經擁有的代碼更容易)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.