看板 NIUECE91 關於我們 聯絡資訊
※ 引述《kewang ( ~動靜~)》之銘言: : ※ 引述《ccclum (我好像很閒??)》之銘言: : : 假設我要copy Y[176][144]的圖片 : : 假設我現在要以16*16的方塊大小copy : : 我下面寫的程式有任何問題嗎?? : : int h,w,Block_h,Block_w; : : int height=176; : : int width=144; : : for(h=0;h<height;h=16+h); : : for(w=0;w<width;w=16+w) : : { : : for(Block_h=h;Block_h<(h+16);++Block_h) : : for(Block_w=w;Block_w<(w+16);++Block_w) : : motion_Y[Block_h][Block_w]=Y[Block_h][Block_w]; : : } : 剛剛寫的 沒compile過 : 錯了別怪我.... : 我看了一下你的寫法 我們兩個大致上是差不多 : 不過你的迴圈寫法就讓人很難理解 非人哉 : 1 #include <stdio.h> : 2 : 3 #define WIDTH 144 : 4 #define HEIGHT 176 : 5 #define BLOCK_SIZE 16 : 6 : 7 int main(){ : 8 int h, w; : 9 int bh, bw; : 10 int pic[HEIGHT][WIDTH]; : 11 int block[BLOCK_SIZE][BLOCK_SIZE]; : 12 : 13 for(h=0;h<HEIGHT;h+=BLOCK_SIZE){ : 14 for(w=0;w<WIDTH;w+=BLOCK_SIZE){ : 15 for(bh=0;bh<BLOCK_SIZE;bh++){ : 16 for(bw=0;bw<BLOCK_SIZE;bw++){ : 17 block[bh][bw]=pic[h+bh][w+bw]; ^^^^^^^ 應該改成block[h+bh][w+bw]=pic[h+bh][w+bw]; 基本上跟我表達的意思是一樣的 但是你原本的寫法 bh ,bw 永遠都在0~15 改成我說的話 就是跟我表達的一樣了 只是迴圈的寫法 不太一樣 又讓我見識到新的想法了..... 其實我中間還有一堆東西 我把他剪掉了... 我的是雙層迴圈裡再加一個雙層迴圈 你的是直接四層迴圈 : 18 //other processing...... : 19 } : 20 } : 21 } : 22 } : 23 : 24 return 0; : 25 } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.138.54.235 ※ 編輯: ccclum 來自: 220.138.54.235 (08/19 09:41) ※ 編輯: ccclum 來自: 220.138.54.235 (08/19 09:41)