c#输出空心菱形 只学到循环
classTest{publicstaticvoidMain(string[]agrs){intnum=9;//定义菱形的层数intnum1=num/2+1;intnum...
class Test {
public static void Main(string[] agrs) {
int num = 9; //定义菱形的层数
int num1 = num / 2 + 1;
int num2 = num / 2;
for (int i = 1; i <=num1; i++) //上半层循环
{
for (int j = 1; j <=num1-i; j++) //打印空格
{
Console.Write(" ");
}
for (int k = 1; k <=i*2-1; k++) //打印星号
{
if (k == 1 || k == i * 2 - 1) //只有在当前层数的第一个和最后一个位置才需要打星号
{
Console.Write("*");
}
else Console.Write(" ");
}
Console.WriteLine(); //循环结束换行
}
for (int i = num2 ; i>=1 ; i--) //下半层循环
{
for (int j = 1; j <=num2-i+1; j++) //打印下半层的空格
{
Console.Write(" ");
}
for (int k = 1; k <=i*2-1; k++) //打印当前层数的星号
{
if (k == 1 || k == i * 2 - 1)
{
Console.Write("*");
}
else Console.Write(" ");
}
Console.WriteLine();
}
}
}
这样合适吗,有没有更加简便的方法。
如果需要从控制台输入层数 并且判断是否为奇数 如果不是奇数提示用户 并且让用户重新输入 如果输入的不是数字 也提示用户并且让用户重新输入 这个怎么做到 展开
public static void Main(string[] agrs) {
int num = 9; //定义菱形的层数
int num1 = num / 2 + 1;
int num2 = num / 2;
for (int i = 1; i <=num1; i++) //上半层循环
{
for (int j = 1; j <=num1-i; j++) //打印空格
{
Console.Write(" ");
}
for (int k = 1; k <=i*2-1; k++) //打印星号
{
if (k == 1 || k == i * 2 - 1) //只有在当前层数的第一个和最后一个位置才需要打星号
{
Console.Write("*");
}
else Console.Write(" ");
}
Console.WriteLine(); //循环结束换行
}
for (int i = num2 ; i>=1 ; i--) //下半层循环
{
for (int j = 1; j <=num2-i+1; j++) //打印下半层的空格
{
Console.Write(" ");
}
for (int k = 1; k <=i*2-1; k++) //打印当前层数的星号
{
if (k == 1 || k == i * 2 - 1)
{
Console.Write("*");
}
else Console.Write(" ");
}
Console.WriteLine();
}
}
}
这样合适吗,有没有更加简便的方法。
如果需要从控制台输入层数 并且判断是否为奇数 如果不是奇数提示用户 并且让用户重新输入 如果输入的不是数字 也提示用户并且让用户重新输入 这个怎么做到 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询