[心得] 菱型

看板C_and_CPP作者 (實施綁椿 民心上升!!!)時間14年前 (2010/03/28 16:24), 編輯推噓5(509)
留言14則, 4人參與, 最新討論串1/1
最近開始重新復習C,就想到以前上課做過的東西 年代久遠再寫一次,有其它什麼比較好的寫法嗎? #include <stdio.h> void printstar(int x){ //印出星形,因為半型空格的關係一次印二個 if(x==0) return; printf("**"); printstar(--x); } void printblank(int y){ //印出半型空白 if(y==0) return; printf(" "); printblank(--y); } int main(){ int a,b,c; scanf("%d",&a); c = ((a/2)+1); //抓出菱型裡星星數量最多的row for(b=1;b<=a;b++){ //輸入奇數給a,印出a個row的菱型 if(b>c){ printblank(b-c); printstar((2*c)-b); }else{ printblank(c-b); printstar(b); } printf("\n"); } getche(); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.214.249 ※ 編輯: sephen 來自: 59.115.214.249 (03/28 16:28)

03/28 18:07, , 1F
印直角三角形拼起來不是比較直覺嗎@@"
03/28 18:07, 1F

03/28 18:11, , 2F
你是說放在陣列裡再翻轉輸出嗎?
03/28 18:11, 2F

03/28 19:58, , 3F
用對齊的方式印出效能會比較好 乘法很花時間的
03/28 19:58, 3F

03/28 19:59, , 4F
你要存起來也可, 把你的函式包裝成印倒三角跟直立三角
03/28 19:59, 4F

03/28 19:59, , 5F
不過實際這題上動到io更花時間 是沒必要計較這點
03/28 19:59, 5F

03/28 20:00, , 6F
把三角形底邊長當參數, 就有另外一層的抽象化
03/28 20:00, 6F

03/28 20:11, , 7F
何不寫個印「歪菱形」(平行四邊形)的程式
03/28 20:11, 7F

03/28 20:18, , 8F
平行四邊形? @@ 那我試試好了
03/28 20:18, 8F
我寫出來是這樣 #include <stdio.h> int main(){ int a,b,c; scanf("%d",&a); b = a - 1; c = a; for(a;a>=1;){ if(b-->=1){ printf(" "); }else{ for(int x=1;x<=c;x++) printf("*"); printf("\n"); b = --a - 1; } } getche(); } ※ 編輯: sephen 來自: 59.115.202.159 (03/28 23:16)

03/29 00:28, , 9F
突然想到菱形"對角線互相垂直平分", 平行四邊形不算喔
03/29 00:28, 9F

03/29 00:45, , 10F
那歪菱形是什麼東西啊?
03/29 00:45, 10F

03/29 00:54, , 11F
沒有那種東西吧 XD
03/29 00:54, 11F

03/29 00:56, , 12F
莫非是菱形右傾60度? XD
03/29 00:56, 12F

03/29 03:12, , 13F
其實無非就是要寫些變化 ASCIIART已經沒什麼發展
03/29 03:12, 13F

03/29 03:12, , 14F
不要再寫那種基本教練 沒什麼意思 要就向ttyquake邁進
03/29 03:12, 14F
文章代碼(AID): #1Bhn8kcH (C_and_CPP)