В настоящее время ваш код не имеет большого смысла, так как у вас есть метод, который принимает int
, но ничего с ним не делает, и возвращает string
, который точно такой же int
пользователь передал только преобразованный в строку (при условии, что вы добавляете .ToString()
к возвращаемому значению, как указано в другом ответе).
Одна идея сделать эту работу - использовать аргумент int
в качестве основы для треугольника, а затем вернуть строковое представление треугольника (вместо чтения или записи чего-либо на консоль внутри этого метода).
Обратите внимание, я не исправил ни один из ваших существующих кодов - я только изменил, как метод использует входной параметр и как он выводит результат:
public static string GetFloydsTriangle(int n)
{
int count = 1;
// Instead of writing strings to the console, we'll
// store them in this string and return it at the end
string triangle = string.Empty;
for (int i = n; i > 0; i--)
{
for (int j = n; j >= i; j--)
{
triangle = triangle + count + " ";
count++;
}
triangle = triangle + Environment.NewLine;
}
return triangle;
}
Затем, чтобы использовать метод, мы попросим пользователя ввести число в методе Main
, а затем передадим его нашему методу. Кроме того, мы получим возвращаемое значение из метода треугольника (который является нашей строкой треугольника) и запишем эту строку в консоль в методе Main
.
Это довольно стандартный способ написания вспомогательного метода - он просто выполняет некоторые вычисления на основе входных данных и возвращает результат (он не взаимодействует с пользователем или пользовательским интерфейсом).
Опять же, я не исправляю ваш код, а просто изменяю его для использования нового метода:
static void Main(string[] args)
{
Console.Write("Enter a number: ");
int num = Convert.ToInt32(Console.ReadLine());
string triangle = GetFloydsTriangle(num);
Console.WriteLine(triangle);
Console.Write("\nDone! Press any key to exit...");
Console.ReadKey();
}