[問題] 請問畫一個圖形

看板C_and_CPP作者 (Yes We Can!)時間14年前 (2009/10/26 16:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
我今天無聊自己玩畫一個圖形,就是給定高及寬都是奇數,畫一個類似以下圖形 1 *********** 2 ***** ***** 3 **** **** 4 *** *** 5 ** ** 6 * * 7 ** ** 8 *** *** 9 **** **** 10***** ***** 11*********** 花了我好久時間,寫出來一個程式,但是感覺真的是很遜的程式 在底下,請問有沒有高手能對這圖形有比較好的寫法 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int h=15, w=15, d=1,mid; int i,j; mid=(1+h)/2; for(i=1;i<=h/2+1;i++) { for(j=1;j<=w;j++) { if(i==1 || i==h) printf("*"); else if(i==2 && j==mid) printf(" "); else if(i==2 && j!=mid) printf("*"); else if(i==h-1 && j==mid) printf(" "); else if(i>2 && i<=mid) { if((j<=mid+d && j>=mid-d)) printf(" "); else printf("*"); } } printf(" d=%d",d); if(i>2 && i<mid) d++; printf("\n"); } //======================== for(i=mid+1;i<=h;i++) { for(j=1;j<=w;j++) { if(i==h)// || i==h) printf("*"); else if(i==h-1 && j==mid) printf(" "); else if(i==h-1 && j!=mid) printf("*"); else if(i==h-1 && j==mid) printf(" "); else if(i<h-1 && i>mid) { if((j<=mid+d && j>=mid-d)) printf(" "); else printf("*"); } } printf(" d=%d",d); if(i<h-1) d--; printf("\n"); } system("PAUSE"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.197.214
文章代碼(AID): #1AvLk8B2 (C_and_CPP)
文章代碼(AID): #1AvLk8B2 (C_and_CPP)