迴圈與陣列問題2

2021-06-14 19:35:08 字數 1845 閱讀 3207

題2:

輸入n,求乙個n*n矩陣,規定矩陣沿45度線遞增,形成乙個zigzag陣列(jpeg編碼裡取畫素資料的排列形式),請問如何用c++實現?

【中國台灣著名硬體公司2023年11月面試題】

注:zigzag陣列見我的部落格

解析:在jpeg圖形演算法中首先對影象進行分塊處理,一般分成互不重疊且大小一致的塊,量化的結果保留了低頻部分的係數,去掉了高頻部分的係數。量化後的係數按zigzag掃瞄重新陣列,然後進行哈夫曼編碼。zigzag陣列是乙個「之」字形排列的陣列。

答案:個人認為第5種答案比較容易理解。

//#include "stdafx.h"

#include #include #define m 255

void zigzag(const int n)

; //初始化了255*255的陣列大小

for(int i = 0; i < n; ++i)

else //下三角

}} //列印

for(int i = 0; i < n; i++)

int *sum = (int *)malloc((2*n-1)*sizeof(int));

sum(n, sum);

for(int i=0; i

/*

列印螺旋陣列

112 113 114 115 116 117 118 119 120 121

73 74 75 76 77 78 79 80 81 82

72 43 44 45 46 47 48 49 50 83

71 42 21 22 23 24 25 26 51 84

70 41 20 7 8 9 10 27 52 85

69 40 19 6 1 2 11 28 53 86

68 39 18 5 4 3 12 29 54 87

67 38 17 16 15 14 13 30 55 88

66 37 36 35 34 33 32 31 56 89

65 64 63 62 61 60 59 58 57 90

100 99 98 97 96 95 94 93 92 91

*/#include #include #include #define max(x,y) (x)>=(y)?(x):(y);

int foo(int ,int);

int main()

printf("\n");

}system("pause");

}int foo(int x,int y)

if(x==y && x==l)

if(x==l)

else if(y==-1*l)

else if(x==-1*l)

else

}

答案5:

#include "stdafx.h"  

#include#includeusing namespace std;

void display(int a[8],int n)

}else}}

//填充右下角矩陣,不包括對角線

int limit = 1;//記錄終止的行列號

for(cross = n-2;cross>=0;cross--)

limit++;

}else

limit++;}}

display(a,n);

getchar();

return 0;

}

迴圈與陣列2

一 迴圈 1 巢狀迴圈 迴圈a 迴圈b 換行 2 break語句和continue語句 break是指滿足條件跳出所有程式,而continue是指滿足了條件跳出當前語句 兩者的含義用用法截然不同 二 陣列 1 陣列的含義 宣告乙個變數就是在記憶體空間劃出一塊合適的空間 宣告乙個陣列就是在記憶體空間劃...

陣列與迴圈問題1

題1 以下 的輸出結果是什麼?中國著名金融企業j銀行2008年面試題 cpp include include using namespace std int main return 0 include include using namespace std int main return 0 a.1...

CI迴圈陣列問題

當我們在controll中把資料傳遞到view中如 data cates data this category model byid data id 呼叫模型層查詢出所有的分類 data cates this category model list cate this load view cat e...