我需要在C#
中打印类似这种风格的东西*****
***
*
我怎么能这样做?
到目前为止,我得到了以下代码,但它以另一种方式打印并减少了一颗星。
int number = 5;
int i, j, k;
for (i = 1; i <= number; i++)
{
for (j = 1; j <= number - i; j++)
{
Console.Write("");
}
for (k = 1; k <= i; k++)
{
Console.Write("*");
}
Console.WriteLine("");
}
答案 0 :(得分:6)
请尝试以下代码:
int number = 5;
for (int i = number; i >= 1; i -= 2)
{
string spaces = new String(' ', (number - i) / 2);
Console.WriteLine(spaces + new String('*', i) + spaces);
}
主要思想是使用String(char, count)
构造函数消除内部循环。
答案 1 :(得分:0)
如果您想从用户那里获取输入,请尝试以下操作:
int number;
int i, j, k;
if (int.TryParse(Console.ReadLine(), out number))
{
for (i = 0; i < number; i++)
{
int numberOfSpaces = i;
int numberOfStars = (number * 2 - 1) - (2 * numberOfSpaces);
for (j = 1; j <= numberOfSpaces; j++)
{
Console.Write(" ");
}
for (k = 1; k <= numberOfStars; k++)
{
Console.Write("*");
}
Console.WriteLine("");
}
}
else
{
Console.WriteLine("No number entered.");
}
Console.Read();
只用一个循环就可以(并且更好)做到这一点,但是你的方法也可以,并且循环可能是你的方式有效的练习点。我可以看到你还在学习,我试着只改变你的代码以使其工作,但要注意有更好的方法来做到这一点(比如使用字符串构建其他一些答案)。
考虑一下你在这里尝试做什么很有帮助。您希望通过这些行循环并计算空格和星星的数量。
首先,使用ReadLine将行数作为输入字符串,然后将其解析为可在循环中使用的数字。 注意 - 如果您之前还没有看到过TryParse,它只是一种通过输入非数字来阻止用户崩溃程序的方法。它检查输入是否可以解析为数字,如果可以,则执行程序。
接下来,对于每一行,您需要计算所需的字符数。让我们考虑3行。
由此可以看出,你需要两倍于行数的字符,少于1.(3 * 2 -1)。您还可以看到,您需要的空格数等于每侧的行数(如果第一行的编号为0)。由此我们可以得出结论,我们需要一个等于字符数的数字星号,少于2 *个空格数。
希望这有助于您思考如何模拟手头的问题!
答案 2 :(得分:0)
CIRCLE形状 伙计们试试这个......
using System;
namespace Fan
{
class Program
{
static void Main(string[] args)
{
int circle_radius = 6;
double console_ratio = Convert.ToDouble(4.0 / 2.0);
double a = console_ratio * circle_radius;
double b = circle_radius;
for (int y = -circle_radius; y <= circle_radius; y++)
{
for (double x = -console_ratio * circle_radius; x <= console_ratio * circle_radius; x++)
{
double d = (x / a) * (x / a) + (y / b) * (y / b);
if (d > 0.90 && d < 1.2)
{
Console.Write("*");
}
else
{
Console.Write(" ");
}
}
Console.Write("\n");
}
Console.Read();
}
}
}
答案 3 :(得分:0)
代码:
int index = 20;
for (int i = 0; i < 20; i++)
{
for (int k = 0; k < 20 - index; k++)
{
Console.Write(" ");
}
for (int j = 0; j < index; j++)
{
Console.Write("*");
}
for (int k = 0; k < index; k++)
{
Console.Write("*");
}
index--;
Console.WriteLine();
}
Console.ReadLine();
输出图片:
答案 4 :(得分:-2)
using System;
namespace ConsoleApplication1
{
public enum shape{
square,
triangle
}
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 20; i++)
{
for (int j = 0; j < 20; j++)
{
Console.SetCursorPosition(j,i);
if (IsInShape(shape.square ,i,j))
{
Console.Write("*");
}
}
}
Console.ReadLine();
}
public static bool IsInShape(shape s, int i, int j)
{
if (s == shape.square)
{
return ((Math.Pow((i - 7), 2) + Math.Pow((j - 7), 2)) <= 12);
}
else
{
return (j - i > 0 && j+i < 6);
}
}
}
}