Использование переменного числа аргументов - C#

Узнай цену своей работы

Формулировка задачи:

Имеется метод MinVal, который принимает переменное число аргументов и возвращает минимальный. Если в метод не было передано аргументов, то выводится соответствующее сообщение, но вместе с этим после сообщения "Ошибка: нет аргументов." выводится ноль. Как можно сделать так, чтобы ноль не выводился?
class Min
{
    public int MinVal(params int[] nums)
    {
        if (nums.Length == 0)
        {
            Console.WriteLine("Ошибка: нет аргументов.");
            return 0;
        }
 
        int m = nums[0];
        for (int i = 1; i < nums.Length; i++)
        {
            if (nums[i] < m)
                m = nums[i];
        }
 
        Console.Write("Наименьшее значение равно ");
        return m;
    }
}
 
class MinDemo
{
    static void Main()
    {
        Min ob = new Min();
        int min;
        int a = 10, b = 20;
 
        min = ob.MinVal();
        Console.WriteLine(min);
 
        min = ob.MinVal(a, b);
        Console.WriteLine(min);
 
        min = ob.MinVal(3, 5, a, 8, 9, b, 4);
        Console.WriteLine(min);
 
        Console.ReadLine();
    }
}
Результатом программы будет:

Ошибка: нет аргументов. 0 Наименьшее значение равно 10 Наименьшее значение равно 3

А хотелось бы видеть такой вывод:

Ошибка: нет аргументов. Наименьшее значение равно 10 Наименьшее значение равно 3

Решение задачи: «Использование переменного числа аргументов»

textual
Листинг программы
class Program {
    static void Main(string[] args) {
        Min ob = new Min();
        int a = 10, b = 20;
        ob.PrintMinValue();
        ob.PrintMinValue(a, b);
        ob.PrintMinValue(3, 5, a, 8, 9, b, 4);
        Console.ReadLine();
    }
}
class Min {
    /// <summary>
    /// Метод, определяющий минимальное целое число в последовательности
    /// </summary>
    /// <param name="nums">Последовательность чисел</param>
    public int MinVal(params int[] nums) {
        if (nums.Length == 0) {
            return 0;
        }
 
        int m = nums[0];
        for (int i = 1; i < nums.Length; i++) {
            if (nums[i] < m)
                m = nums[i];
        }
 
        return m;
    }
    /// <summary>
    /// Метод, выводящий информацию о минимальном числе
    /// </summary>
    /// <param name="sums"></param>
    public void PrintMinValue(params int[] sums) {
        int min = MinVal(sums);
        if (min == 0) {
            Console.WriteLine("Ошибка: нет аргументов");
        }
        else {
            Console.WriteLine("Минимальный элемент равен {0}", min);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы