我必须在 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();
}
}
我得到的输出:
最佳答案
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/