c# - 打印带有字母的倒三角形

标签 c# c pascals-triangle

我必须在 C# 中打印以下模式 -

  A B C D E F G F E D C B A
    A B C D E F E D C B A
      A B C D E D C B A
        A B C D C B A
          A B C B A
            A B A
              A

我可以在 C 中打印该模式,但不能在 C# 中打印,因为字符输入在 C# 中不起作用。我尝试转换它,但无法正确转换它并面临 for 循环的问题。请告诉我如何编写等效的 C# 代码。 提前致谢。

C 代码是:

#include<stdio.h>
#include<conio.h>
int main()
{
  char ch,r,c;
  int sp;
  printf("\nEnter last character of triangle : ");
  scanf("%c",&ch);
  if(ch>='a' && ch<='z')
      ch=ch-32;
  printf("\n");
  for(r='A'; 'A'<=ch; ch--,r++)
  {
    for(sp=r; sp>'A'; sp--)
       printf(" ");
    for(c='A'; c<=ch; c++)
       printf("%c",c);   
    for(c=ch-1; c>='A'; c--)
       printf("%c",c);
    printf("\n");
  }
  getch();
  return 0;
}

已编辑

我的 C# 代码:

public class Pascal_Triangle
    {
        public void printPascal()
        {
            char ch, r, c;
            int sp;
            Console.WriteLine("\nEnter last character of triangle : ");
            ch = Convert.ToChar(Console.ReadLine());
            if (ch >= 'a' && ch <= 'z')
                ch = Convert.ToChar(ch - 32);

            for (r = 'A'; 'A' <= ch; ch--, r++)
            {
                for (sp = r; sp > 'A'; sp--)
                    Console.WriteLine(" ");
                for (c = 'A'; c <= ch; c++)
                    Console.Write(c);
                for (c = Convert.ToChar(ch - 1); c >= 'A'; c--)
                    Console.Write(c);
            }
                Console.ReadLine();
        }
    }

我得到的输出:

enter image description here

最佳答案

C# 确实支持循环遍历字母表...

char c = 'A';
++c;

c 会增长到“B”

但是,当然,您不能增加/减少字符串,只能增加/减少字符。

你的代码太复杂了,试试这个。很容易理解,一步一步来就可以了。

        Console.WriteLine("\nEnter last character of triangle : ");
        char ch = Convert.ToChar(Console.ReadLine());

        if (ch >= 'a' && ch <= 'z')
        {
            ch = Convert.ToChar(ch - 32);
        }


        int numberOfLines = ch - 'A' + 1;
        var graphic = "";

        for (var i = 0; i < numberOfLines; i++, ch--)
        {
            var line = "";
            var tmp = "";

            for (var j = 0; j < i; j++)
            {
                tmp += " ";
            }
            line += tmp;

            for (var j = 'A'; j < ch; j++)
            {
                line += j.ToString();
            }
            for (var j = ch; j >= 'A'; j--)
            {
                line += j.ToString();
            }

            line += tmp;              
            graphic += line + "\n";
        }

        Console.WriteLine(graphic);
        Console.ReadLine();

关于c# - 打印带有字母的倒三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18807318/

相关文章:

c - 当用户输入超出使用 fgets 所需的范围时该怎么办?

java - 在java中打印2D int数组的空格而不是零

c# - 不能用单声道压缩?

c# - 单元测试垃圾收集

c# - 如何告诉编译器必须初始化属性

c - 是否有任何工具可以将界面从遗留 GTK 应用程序迁移到基于 GTK Builder 的现代应用程序

c - POSIX_FADV_DONTNEED 是否从 Linux 上的其他进程中删除脏页?

C++:帕斯卡三角形——奇怪的结果

java - 尝试使用 while 循环继续循环,直到用户输入 n (Java)

C#/.NET 不是通用 LinkedList 存在吗?