Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用for循环打印三角形星形_C#_For Loop - Fatal编程技术网

C# 使用for循环打印三角形星形

C# 使用for循环打印三角形星形,c#,for-loop,C#,For Loop,我需要用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;

我需要用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("");
}
int number=5;
int i,j,k;

对于(i=1;i请尝试以下代码:

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);
}

主要思想是通过使用构造函数消除内部循环。

如果要从用户处获取输入,请尝试以下操作:

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();
整数;
int i,j,k;
if(int.TryParse(Console.ReadLine(),out number))
{
对于(i=0;i使用系统;
命名空间控制台应用程序1
{
公共枚举形状{
广场
三角形
}
班级计划
{
静态void Main(字符串[]参数)
{
对于(int i=0;i<20;i++)
{
对于(int j=0;j<20;j++)
{
控制台。设置光标位置(j,i);
if(IsInShape(shape.square,i,j))
{
控制台。写(“*”);
}
}
}
Console.ReadLine();
}
公共静态布尔IsInShape(形状s,内部i,内部j)
{
如果(s==shape.square)
{
返回((数学功率((i-7),2)+数学功率((j-7),2))0&&j+i<6);
}
}
}
}
圆形 伙计们试试这个

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();
    }

   }
}
使用系统;
名称空间风扇
{
班级计划
{
静态void Main(字符串[]参数)
{
int圆_半径=6;
双控制台比例=转换为双控制台(4.0/2.0);
双a=操纵台的比例*圆的半径;
双b=圆的半径;

对于(int y=-圆半径;y代码:

 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();
int索引=20;
对于(int i=0;i<20;i++)
{
对于(int k=0;k<20-索引;k++)
{
控制台。写(“”);
}
对于(int j=0;j
输出图像:


虽然这不能解决您的问题,但您应该使用空格,而不是像
Console.Write(“”)这样的空字符串
您的输出只需要奇数个星号。您的代码打印所有星号。您的输出与代码的方向相反。您需要了解代码正在执行的操作。
Console.WriteLine(“*********\n***\n*”)
不需要循环我的天啊,你真是个天才!!如果你能找到一种方法来实现它,那会是一个更好的答案。我也可以用1个循环来完成,非常热情!不幸的是,我认为最好的答案消除了额外的循环。尽管一个粗鲁的人可能会考虑字符串构造函数是否隐藏了一个循环,但我还是看了一看里面的循环structor。您可以从中获得奖励,因为a)您只需要为该字符串分配一次内存,b)循环使用指针将计算分为4块。请参阅System.StringCharCount中的CtorCharCount。问题的标题明确指出,练习的重点是使用
进行
循环。这显然是在学习编码,而不是在寻找将星号打印到控制台的最有效方法的人!谢谢这是一个******我运行了代码,它似乎产生了你想要的结果,它对你有用吗?我真正想做的是,当用户输入一个值时,它将打印该行数。例如,如果用户输入1,它将只打印一行*如果用户输入3,它将打印******如果用户输入4,它将像那样打印***************。好的,我将更新我的答案以包括输入多行的选项。如果有帮助,请将其标记为答案!
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();
    }

   }
}
 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();