黑马程序员技术交流社区
标题:
黑马程序员_谭光洪_经典初学者练习
[打印本页]
作者:
FrancisTan
时间:
2014-7-4 18:21
标题:
黑马程序员_谭光洪_经典初学者练习
本帖最后由 FrancisTan 于 2014-7-7 17:40 编辑
题目要求从键盘输入一个奇数,然后用“*”打印出所输入数字为行数的菱形。 如输入5,则输出:
*
***
*****
***
*
这个题目据说是很经典的一个练习for循环的习题,非常惭愧,不才用了一下午的时间才想出来。
在这里贴出自己的代码:
Console.WriteLine("请输入一个奇数(1~20):");
int input = Convert.ToInt32(Console.ReadLine());
//下面分两部分输入结果
//第一部分 输出前input/2-1行
for (int i = 0; i < input/2 -1; i++)
{
//首先输出每行前面的空格
for (int j = 0; j < input/2; j++)
Console.Write(" ");
//然后输出每行的星号
for (int k = 0; k < 2*i + 1; k++)
Console.Write("*");
//一行结束 换行
Console.WriteLine();
}
//第二部分 输出后input/2+1行
for (int i = 0; i < input/2 + 1; i++)
{
for (int j = 0; j < i; j++)
Console.Write(" ");
//用input减去每行输出的空格数,剩下的就是该行应该输出的星号数
for (int k = 0; k < input -2*i; k++)
Console.Write("*");
Console.WriteLine();
}
复制代码
上述代码我自己都感觉挺乱的,看着也费事,但苦思更好的算法无果,还请各位指教!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2