Нахождение номера первого отрицательного элемента массива, делящегося на 5 с остатком 2 - C#

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

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

Здравствуйте! Я новичек, написал код, но по нему есть пара вопросов. Код решает следующие задачи: Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-10,20]. 1. Найти сумму элементов, имеющих нечетные индексы. 2. Подсчитать количество элементов массива, значения которых больше заданного числа А и кратных 5. 3. Найти номер первого отрицательного элемента, делящегося на 5 с остатком 2. Но при решении 3ей задачи возникает проблема, индексы чисел -7, -12, -17 находятся корректно, но при наличии в массиве числа -2, его индекс тоже находиться, чего быть не должно.(строки 99-110 в коде) Подскажите пожалуйста, как это исправить. И второй вопрос, при вводе числа А, первоначальный массив меняется, и все задачи пересчитываются под новый массив, можно ли сделать так, чтобы массив не менялся при вводе А.
Листинг программы
  1. using System;
  2. namespace Test
  3. {
  4. public class Program
  5. {
  6. public static void Main(string[] args)
  7. {
  8. // считать с консоли кол-во чисел в массиве
  9. int cntOfNumbers = GetUserInput("количество чисел в массиве");
  10. // массив чисел
  11. var numArray = new int[cntOfNumbers];
  12. // Заполнить массив случайным образом числами из промежутка [-10,20]
  13. FillArray(numArray, cntOfNumbers, -10, 20);
  14. Console.WriteLine("Содержимое массива: " + string.Join(", ", numArray));
  15. /// Задание 1
  16.  
  17. Console.WriteLine(
  18. "Сумма нечетных элементов: {0}",
  19. GetSum(numArray)
  20. );
  21. /// Задание 2
  22. // считать с консоли число А из задания 2
  23. int maxAbsNumber = GetUserInput("число А");
  24. Console.WriteLine(
  25. "Количество элементов, значения которых кратны 5 и больше заданного числа: {0}",
  26. GetCount(numArray, maxAbsNumber)
  27. );
  28. /// Задание 3
  29. int? crossIndex = GetFirstIndex(numArray);
  30. Console.WriteLine(
  31. "Индекс первого отрицательного числа делящегося на 5 с отатком 2: {0}",
  32. crossIndex == null ? "не найден" : crossIndex.ToString()
  33. );
  34. }
  35. private static int GetUserInput(string description)
  36. {
  37. int result = 0;
  38. Console.WriteLine("Введите " + description);
  39. while (!Int32.TryParse(Console.ReadLine(), out result))
  40. {
  41. Console.WriteLine("Введено некорректное число!");
  42. Console.WriteLine("Введите " + description);
  43. }
  44. return result;
  45. }
  46. // Заполняет массив числами
  47. private static void FillArray(int[] array, int count, int min, int max)
  48. {
  49. var rnd = new Random();
  50. for (var i = 0; i < count; i++)
  51. {
  52. int newNum = rnd.Next(min, max);
  53. array[i] = newNum;
  54. }
  55. }
  56. // Возвращает сумму нечетных элементов из массива
  57. private static int GetSum(int[] array)
  58. {
  59. int sum = 0;
  60. foreach (int num in array)
  61. {
  62. if (num % 2 == 0) // четные пропускаются
  63. continue;
  64. sum += num;
  65. }
  66. return sum;
  67. }
  68. // Возвращает количество элементов, значения которых кратны 5 и превосходят заданное число А
  69. private static int GetCount(int[] array, int A)
  70. {
  71. int count = 0;
  72. foreach (int num in array)
  73. {
  74. if (num < A || num % 5 != 0 ) // не кратные 5 и не превосходящие А пропускаются
  75. continue;
  76. count++;
  77. }
  78. return count;
  79. }
  80. // Возвращает индекс первого отрицательного элемента делящегося на 5 с остатком 2
  81. private static int? GetFirstIndex(int[] array)
  82. {
  83. for (int i = 0; i < array.Length; i++)
  84. {
  85. if (array [i] < 0 && array [i] % 5 == -2)
  86. {
  87. return i + 1;
  88. }
  89. }
  90. return 0;
  91. }
  92. }
  93. }

Решение задачи: «Нахождение номера первого отрицательного элемента массива, делящегося на 5 с остатком 2»

textual
Листинг программы
  1. if (array [i] < -2 && array [i] % 5 == -2)

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


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

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

9   голосов , оценка 4.556 из 5

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

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

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