【问题标题】:Writing the letter O in C#, consisting of "#"用 C# 写字母 O,由“#”组成
【发布时间】:2021-08-16 11:38:59
【问题描述】:

我是新来的,一般来说也是 C# 的新手。我的任务是输出字母 O。此外,程序应该读取一个表示相应高度的数字。

输出应该看起来像给定的照片所示。

如果现在数字更大,则应相应调整对象的宽度。现在这是我的问题。我已经有一个代码块,它在星座上方输出,但不可定制。 我已经尝试过使用 WriteLine 和 if 语句来用空格缩放宽度,但这并不像我想要的那样工作。 另外,开头还缺少convert,它引入了输入的数字。

所以我想要什么:

  1. 您应该输入一个定义高度的数字。
  2. 输出应调整为高度并进行逻辑缩放
  3. 不应再添加包含 # 的行,它应该只是总共 8 个“#”(可以说是拉伸)

到目前为止我的代码是:

class Program
{
    static void Main(string[] args)
    {
        for (int i = 0; i <= 7; i++)                               
            if (i == 0)
                Console.WriteLine(" #");
        for (int j = 1; j <= 7; j++)
            if (j == 1)
                Console.WriteLine(" # #");
        for (int k = 2; k <= 7; k++)
            if (k == 2)
                Console.WriteLine("# #");      
        for (int m = 3; m <= 7; m++)
            if (m == 3)
                Console.WriteLine(" # #");
        for (int m = 4; m <= 7; m++)
            if (m == 4)
                Console.WriteLine(" #");
        Console.ReadKey();
    }
}

【问题讨论】:

  • 该图像被称为“ASCII 艺术”。这是你应该用谷歌搜索的术语。
  • 您需要使用固定大小(等宽)字体,例如 Courier 用于 ASCII 艺术,控制台标准设置就是这种情况。问题是什么?我看到空格放错了。
  • 您的代码在某些方面不起作用吗?现在可能是开始熟悉use of a debugger 的好时机。执行此操作时,代码中的哪个特定操作首先会产生意外结果?调用该操作时的运行时值是多少?观察到的结果是什么?预期的结果是什么?为什么?有关如何提问的提示和信息,请参阅How to Ask 及其链接资源。
  • 如果你理解你已经编写的代码(我不确定你是否完全理解,因为那些循环是多余的),那么你需要做的就是简单地问,“如果我想要将大小增加 X,这对每一行意味着什么?”换句话说,区别仅在于空格的位置和数量,那么您的代码如何根据宽度增加空格的数量?在方格纸上画出几个例子,就是基础数学。

标签: c#


【解决方案1】:

仔细观察钻石(字母 O)。

第一行和最后一行只包含一个#。在这些行上,您需要一个循环来打印可变数量的空格。

___#

这两行之间的行数是可变的。您需要一个循环来生成这些行。或者两个循环。一个生成^ 形状

__#_#
_#___#
#_____#

另一个生成v 形状。

_#___#
__#_#

嵌套在这些循环中,您还需要两个循环。一个打印之前的空格,一个打印第一个 # 和第二个 # 之间的空格。

请注意,如果总行数为奇数,则中间行最长,^v 部分的大小不同。如果数字是偶数,那么您将有两条最长的线和两个具有相同高度的部分。

最后一个

___#

使用Console.Write,您可以在同一行写入字符。使用Console.WriteLine 结束行,下一次写入将写入下一行。

嗯,然后你需要一些基本的算法来根据总高度和当前行号计算空格数。

请注意,最大的努力是将这个形状分解成它的基本组成部分并分析它的几何形状。一旦有了这个,编码本身就相当简单了。

由于这看起来像家庭作业,我会让你弄清楚细节并做编码部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-08
    • 2014-05-30
    • 1970-01-01
    • 2017-12-09
    • 2018-07-07
    • 2019-04-21
    • 2022-10-14
    • 2017-11-12
    相关资源
    最近更新 更多