作者party100046 (陳靖仇)
看板C_Sharp
標題[問題] 畫一個漏斗圖案
時間Fri Jul 23 19:26:11 2010
我在練習畫一個漏斗出來
像是這樣的
*****
***
*
***
*****
但是怎麼畫好像都只有畫一個三角形而已
我上下的形狀都有寫判斷式了
想來請問版上的大大們,那裡的邏輯出了問題?
以下是我的程式
int x,y,center;
for (x = 1; x <= 5; x++)
{
center = Math.Abs(3 - x);
for (y = 1; y <= 5; y++)
{
if (y <= 3 + center && y >= 3 - center)
{
System.Console.Write("*");
}
else
{
System.Console.Write(" ");
}
}
System.Console.WriteLine();
}
}
後來重想思考了一遍,我也上網參考了一些資料。
我後來想到利用中心點去找出X行數的位移量
center = Math.abs(3-x) << 這個
這樣會變成 1.2.0.-1.-2 我後來用絕對值使它們變成正數。
再去y裡面做畫"*"的判斷。
不知道我中心點的說法合不合邏輯= ="
雖然是自已想的,但還是有點懷疑 XD
請大大指正!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.134.138
1F:→ ssccg:看不懂你的作法,不過第二行 x 沒初始化能用? 07/23 19:41
2F:→ ssccg:然後你全都用WriteLine(),每個符號都會換行吧 07/23 19:41
3F:推 F23ko:不知道為什麼,我看到這種題目,都會給她: 07/23 20:27
4F:→ F23ko:System.Console.WriteLine("*****"); 07/23 20:27
5F:→ F23ko:System.Console.WriteLine(" *** "); 07/23 20:28
6F:→ F23ko:System.Console.WriteLine(" * "); 07/23 20:28
7F:→ F23ko:System.Console.WriteLine(" *** "); 07/23 20:28
8F:→ F23ko:System.Console.WriteLine("*****"); 07/23 20:28
9F:→ F23ko:這樣下去...... 07/23 20:28
10F:→ party100046:= =+ 07/23 20:33
11F:推 F23ko:不覺得跟一堆迴圈比起來,這種方法簡單好懂嗎? :P 07/23 20:35
12F:→ party100046:是沒錯啦~ 但是邏輯上算是土法煉鋼= =" 07/23 20:54
13F:→ party100046:漏斗的中心點要如何抓到? 07/23 21:06
14F:推 F23ko:糟糕.....我想玩這一題了 XD 07/23 21:23
15F:→ james732:F23ko那種寫法在學校會零分喔...XDDDD 07/23 21:30
16F:推 F23ko:(  ̄  ̄)y▂ξ 我自修 呼呼~~ 07/23 21:31
17F:→ party100046:鐵定零分= = 07/23 21:46
※ 編輯: party100046 來自: 123.204.134.138 (07/23 21:51)
18F:→ redseye:不會零分啦 除非指定輸入行數等 XDD 07/23 23:21
19F:→ ssccg: 其實就是 |y - center| ≦ |x - center| 07/23 23:29
20F:→ ssccg:如果center是(行數+1)/2 07/23 23:30