首页 > 解决方案 > 如何在 C# 中打印 ASCII 模式但使用 Java 语法?

问题描述

模式

下面的代码是用于模式的a,感觉一旦我得到a我就可以得到其他人。

我喜欢array[int].lengthJava 中的语法,并且有助于打印如图所示的模式。但我认为 C# 中不存在这样的事情。

class Main {
    public static void main(String[] args)
    {
        char[][] arr = new char[10][10];
        int starCount = 10;
        for(int i = 0; i < arr.length; i++)
        {
            for(int j = 0; j < starCount; j++)
            {
                arr[i][j] = '*';
            }
            for(int k = starCount; k < arr[i].length; k++)
            {
                arr[i][k] = '-';
            }
            starCount--;
        }
        for(int a = 0; a < arr.length; a++)
        {
            for(int b = 0; b < arr[a].length; b++)
            {
                System.out.print(arr[a][b]);
            }
            System.out.println();
        }
    }
}

此代码*以递减的方式打印,但我正在努力解决如何用-图像中所示的字符替换数组的空元素。

class MainClass {
    public static void Main (string[] args)
    {
        char[ , ] arr = new char[10,10];
        int starCount = 10;
        for(int i = 0; i < arr.Length; i++)
        {
            for (int j = 0; j < starCount; j++)
            {
                arr[i , j] = '*';
            }
            for (int k = 0; ) //IDK WHAT TO DO TO ASSIGN ARR[I , K] = '-';
                starCount--;
        }
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                Console.Write(arr[i , j]);
            }
            Console.WriteLine();
        }
    }
}

标签: javac#multidimensional-arrayascii-art

解决方案


您可以使用两个嵌套的 for 循环和一个if else 语句来打印所有这些模式。这是 Java 代码,但我认为它可以很容易地转换为 C#:

int n = 5;
for (int i = -n; i <= n; i++) {
    for (int j = -n; j <= n; j++) {
        // a) if (i + j <= 0)
        // b) if (i + j >= 0)
        // c) if (i <= j)
        // d) if (Math.abs(i) + Math.abs(j) <= n)
        if (i + j <= 0)
            System.out.print("*");
        else
            System.out.print("-");
    }
    System.out.println();
}

输出(组合):

a)           b)           c)           d)
***********  ----------*  ***********  -----*-----
**********-  ---------**  -**********  ----***----
*********--  --------***  --*********  ---*****---
********---  -------****  ---********  --*******--
*******----  ------*****  ----*******  -*********-
******-----  -----******  -----******  ***********
*****------  ----*******  ------*****  -*********-
****-------  ---********  -------****  --*******--
***--------  --*********  --------***  ---*****---
**---------  -**********  ---------**  ----***----
*----------  ***********  ----------*  -----*-----

另请参阅:使用循环输出 ASCII 菱形


推荐阅读