Re: [問題] 輸入N得N層等腰三角形 案ENTER旋轉90度

看板C_and_CPP (C/C++)作者 (方天畫)時間13年前 (2013/02/27 17:08), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《arthank02 (亂世中的碎星)》之銘言: : 請問如何得到等腰三角? : 我一直打只打出 : * : ** : *** : **** : ***** : 不知道該如何...還有要如何讓它旋轉90度最猴回到原來的形狀 等腰三角形 還要一直旋轉 懶得想的話 就直接放在二維陣列裡面 然後陣列用row major順著印一次 反向再印一次 用column major一樣順著印一次 反向再印一次 就可以得到旋轉的四個方向了 這是我的做法 int main(void) { int i, j, height, width, middleIdx; char **ary = 0; printf("請輸入高度:"); scanf("%d", &height); printf("\n"); width = height*2-1; middleIdx = height-1; // 初始化等腰三角形陣列陣列 ary = (char **)malloc(height*sizeof(char *)); for (i=0; i<height; i++) { ary[i] = (char *)malloc(width*sizeof(char)); // 初始化為一張白紙 for (j=0; j<width; j++) { ary[i][j] = ' '; } // 畫上等腰三角形 ary[i][middleIdx] = '*'; for (j=1; j<=i; j++) { ary[i][middleIdx+j] = '*'; ary[i][middleIdx-j] = '*'; } } // 印出箭頭向上等腰三角形 for (i=0; i<height; i++) { for (j=0; j<width; j++) { printf("%c", ary[i][j]); } printf("\n"); } printf("\n"); // 印出箭頭向左等腰三角形 for (j=0; j<width; j++) { for (i=0; i<height; i++) { printf("%c", ary[i][j]); } printf("\n"); } printf("\n"); // 印出箭頭向下等腰三角形 for (i=height-1; i>=0; i--) { for (j=0; j<width; j++) { printf("%c", ary[i][j]); } printf("\n"); } printf("\n"); // 印出箭頭向右等腰三角形 for (j=0; j<width; j++) { for (i=height-1; i>=0; i--) { printf("%c", ary[i][j]); } printf("\n"); } // 釋放記憶體 for (i=0; i<height; i++) { free(ary[i]); } free(ary); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.139.121

02/28 09:41, , 1F
還真的幫他寫作業了...
02/28 09:41, 1F

03/01 01:09, , 2F
你人真好還幫人家寫hw
03/01 01:09, 2F
文章代碼(AID): #1HBSqHpL (C_and_CPP)
文章代碼(AID): #1HBSqHpL (C_and_CPP)