Я не могу получить этот ответ:
*****
****
***
**
*
Многомерные массивы, вложенные (do..while, while, for)
char[,] stars = new char[5, 3];
for (int i = 0; i < 5; i++)
{
for(int x=0;x<3;x++)
{
stars[i,x]=char.Parse("*");
Console.Write(stars[i, x]);
Я хочу получить 5 звезд "*", затем 4 в новой строке, затем 3 в новой строке, затем 1 в новой строке.
Вам действительно нужен многомерный массив здесь?
как сделать с одним массивом?
Подсказка: напишите правильную логику для первого и второго цикла for, используйте внутренний цикл for для печати * и внешний цикл for для новой строки.





Здесь вам нужно понять закономерность *.
звездный узор в вашей программе есть,
0st Line : 5 starts //Considering starting index is 0
1st Line : 4 starts // starts = n starts - Line no. where n = 5
2nd Line : 3 starts
3rd Line : 2 starts
4th Line : 1 starts
то есть
Number of stars in single line = n starts - Line number // where n = 5
Таким образом, ваш код будет выглядеть так:
int n = 5;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - i; j++)
{ //^^^^^ n - i is key behind this * pattern
Console.Write("*");
}
Console.WriteLine();
}
Крошечная ошибка: Console.WriteLine(Environment.NewLine); на самом деле напишет две новые строки. Только одного должно быть достаточно.
Поскольку речь идет не об индексации массива или вычислении адресов, а о реальных счетных объектах (звездах), я чувствую, что индексы, основанные на 1, здесь имеют больше смысла.
Кроме того, количество звезд должно уменьшаться, поэтому обратный отсчет также имеет больше смысла:
for (int numStars = 5; numStars >= 1; --numStars)
{
for (int star = 1; star <= numStars; ++star)
Console.Write("*");
Console.WriteLine();
}
Пожалуйста, добавили ошибку нашего устранения неполадок. Какой результат вы хотите получить.