C# 使用simple for循环打印星星钻石
所需输出为:C# 使用simple for循环打印星星钻石,c#,loops,C#,Loops,所需输出为: ****** ** ** * * ** ** ****** 我编写了以下代码来实现它: int n = 5; for (int i = n; i >= 1; i--) { for (int j =n-1; j >= n-i; j--) { if ((i == j && j > i) || (j == i && i > j)) Console.Write("*
******
** **
* *
** **
******
我编写了以下代码来实现它:
int n = 5;
for (int i = n; i >= 1; i--)
{
for (int j =n-1; j >= n-i; j--)
{
if ((i == j && j > i) || (j == i && i > j))
Console.Write("*");
else
Console.Write("3");
}
Console.WriteLine();
}
for (int i = n; i >= 1; i--)
{
for (int j = i; j <= n; j++)
{
if ((i == j && j > i) || (j == i && i > j))
Console.Write("*");
else
Console.Write("3");
}
Console.WriteLine();
}
Console.ReadLine();
我如何修改我的代码来打印一颗星星的钻石呢?你不能用一种简单的方法吗
Console.Writeline("******");
Console.Writeline("** **");
Console.Writeline("* *");
Console.Writeline("** **");
Console.Writeline("******");
试试这个:
int number = 5;
for (int i = 0; i < number; i++)
{
var starsCount = 1 + Math.Abs(Math.Floor(number / 2.0) - i);
var spacesCount = 1 + Math.Floor(number / 2.0) - starsCount;
var output = "";
for (int j = 0; j < starsCount; j++)
output += "*";
for (int k = 0; k < spacesCount; k++)
output += " ";
for (int m = 0; m < starsCount; m++)
output += "*";
Console.WriteLine(output);
}
int number=5;
for(int i=0;i
**********************你知道(i==j&&j>i)
总是错的吗?不,先生,我想用一些打印菱形的逻辑,然后你真的应该扩展你的问题并解释这个逻辑,很不清楚你期望什么?先生,很好,但是你能告诉我你是如何开始思考这个问题的吗?我使用了if-else条件,超过5天我试图解决这个问题,但我做不到,现在我的大学停课了,所以你可以分享任何我可以积累知识和加强逻辑的地方。这都是关于你如何分析问题,我将问题分为两个方面:左侧和右侧,并考虑到这一点构建了逻辑。这是无法教授的逻辑,是随着时间的推移而积累的经验,你解决的问题越多,你知道的就越多:)我用你的代码打印菱形,但这里是int number=10;对于(int i=0;iint number = 5;
for (int i = 0; i < number; i++)
{
var starsCount = 1 + Math.Abs(Math.Floor(number / 2.0) - i);
var spacesCount = 1 + Math.Floor(number / 2.0) - starsCount;
var output = "";
for (int j = 0; j < starsCount; j++)
output += "*";
for (int k = 0; k < spacesCount; k++)
output += " ";
for (int m = 0; m < starsCount; m++)
output += "*";
Console.WriteLine(output);
}