昨天看完循环视频,最后出了一个菱形题,本人菜鸟中的菜鸟,想了好长时间才想出下面的解决方法,不知我的思路如何,有没有欠妥之处,请不吝赐教.
// *
// ***
// *****
// *******
// *****
// ***
// *
//菱形题,分为俩个三角形;
// i行变量,空格数为j,*数为k
// *数空格数与i的关系
// 空格数=最大行数-当前行数
// *数=当前行数*2-1;
//下半部分三角形
// 空格数=最大行数-当前行数;当前行数为最大行数-1,然后--递减;
// *数=当前行数*2-1
//
//输入偶数的还没有去考虑,暂且先只能输入整数且为奇数.
Console.WriteLine("请输入一个奇数");
int num = Convert.ToInt32(Console.ReadLine());
int zuida = (num + 1) / 2;//算出最大行数
int i, j, k;
for (i = 1; i <= zuida; i++)//上半部分三角形
{
for (j = 1; j <= zuida - i; j++)//控制空格数
{
Console.Write(" ");
}
for (k = 1; k <= 2 * i - 1; k++)//控制*数
{
Console.Write("*");
}
Console.WriteLine("");//一行输出完毕,换行
}
for (i = zuida-1; i >=1; i--)//下半部分三角形
{
for (j = 1; j <= zuida - i; j++)//控制空格数
{
Console.Write(" ");
}
for (k = 1; k <= 2 * i - 1; k++)//控制*数
{
Console.Write("*");
}
Console.WriteLine("");
}
Console.ReadKey(); |