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

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

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

Имеется метод MinVal, который принимает переменное число аргументов и возвращает минимальный. Если в метод не было передано аргументов, то выводится соответствующее сообщение, но вместе с этим после сообщения "Ошибка: нет аргументов." выводится ноль. Как можно сделать так, чтобы ноль не выводился?
Листинг программы
  1. class Min
  2. {
  3. public int MinVal(params int[] nums)
  4. {
  5. if (nums.Length == 0)
  6. {
  7. Console.WriteLine("Ошибка: нет аргументов.");
  8. return 0;
  9. }
  10. int m = nums[0];
  11. for (int i = 1; i < nums.Length; i++)
  12. {
  13. if (nums[i] < m)
  14. m = nums[i];
  15. }
  16. Console.Write("Наименьшее значение равно ");
  17. return m;
  18. }
  19. }
  20. class MinDemo
  21. {
  22. static void Main()
  23. {
  24. Min ob = new Min();
  25. int min;
  26. int a = 10, b = 20;
  27. min = ob.MinVal();
  28. Console.WriteLine(min);
  29. min = ob.MinVal(a, b);
  30. Console.WriteLine(min);
  31. min = ob.MinVal(3, 5, a, 8, 9, b, 4);
  32. Console.WriteLine(min);
  33. Console.ReadLine();
  34. }
  35. }
Результатом программы будет:

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

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

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

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

textual
Листинг программы
  1. class Program {
  2.     static void Main(string[] args) {
  3.         Min ob = new Min();
  4.         int a = 10, b = 20;
  5.         ob.PrintMinValue();
  6.         ob.PrintMinValue(a, b);
  7.         ob.PrintMinValue(3, 5, a, 8, 9, b, 4);
  8.         Console.ReadLine();
  9.     }
  10. }
  11. class Min {
  12.     /// <summary>
  13.     /// Метод, определяющий минимальное целое число в последовательности
  14.     /// </summary>
  15.     /// <param name="nums">Последовательность чисел</param>
  16.     public int MinVal(params int[] nums) {
  17.         if (nums.Length == 0) {
  18.             return 0;
  19.         }
  20.  
  21.         int m = nums[0];
  22.         for (int i = 1; i < nums.Length; i++) {
  23.             if (nums[i] < m)
  24.                 m = nums[i];
  25.         }
  26.  
  27.         return m;
  28.     }
  29.     /// <summary>
  30.     /// Метод, выводящий информацию о минимальном числе
  31.     /// </summary>
  32.     /// <param name="sums"></param>
  33.     public void PrintMinValue(params int[] sums) {
  34.         int min = MinVal(sums);
  35.         if (min == 0) {
  36.             Console.WriteLine("Ошибка: нет аргументов");
  37.         }
  38.         else {
  39.             Console.WriteLine("Минимальный элемент равен {0}", min);
  40.         }
  41.     }
  42. }

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


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

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

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы