作者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