Вставить в массив новый элемент после последнего положительного - C#

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

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

Помогите подправить сдвиг массива. Задача: вставить новый элемент после последнего положительного.)
Листинг программы
  1. class Program
  2. {
  3. static int[] setarr(int n)
  4. {
  5. int[] arr = new int[2 * n];
  6. for (int i = 0; i < n; i++)
  7. {
  8. Console.Write("Arr[{0}]=", i);
  9. arr[i] = Convert.ToInt32(Console.ReadLine());
  10. }
  11. return arr;
  12. }
  13. static void print(int[] arr, int n)
  14. {
  15. for (int i = 0; i < n; i++)
  16. {
  17. Console.Write("{0}", arr[i]);
  18. }
  19. Console.WriteLine();
  20. }
  21. static void add(int[] arr, ref int n)
  22. {
  23. for (int i = n; i >= 0; i--)
  24. {
  25. if (arr[i - 1] > 0)
  26. {
  27. int x = arr[i];
  28. ++n;
  29. arr[i] = Convert.ToInt32(Console.ReadLine());
  30. arr[++i] = x;
  31. break;
  32. }
  33. }
  34. }
  35. static void Main()
  36. {
  37. Console.Write("Введите размерность массива:");
  38. int n = Convert.ToInt32(Console.ReadLine());
  39. int[] arr = setarr(n);
  40. Console.WriteLine("Исходный массив:");
  41. print(arr, n);
  42. Console.Write("Введите новое значение:");
  43. add(arr, ref n);
  44. Console.WriteLine("Изменённый массив:");
  45. print(arr, n);
  46. }
  47. }

Решение задачи: «Вставить в массив новый элемент после последнего положительного»

textual
Листинг программы
  1. class Program
  2. {
  3.     static int[] setarr(int n)
  4.     {
  5.         int[] arr = new int[n];
  6.         for (int i = 0; i < n; i++)
  7.         {
  8.             Console.Write("Arr[{0}]=", i);
  9.             arr[i] = Convert.ToInt32(Console.ReadLine());
  10.         }
  11.         return arr;
  12.     }
  13.  
  14.     static void print(int[] arr)
  15.     {
  16.         for (int i = 0; i < arr.Length; i++)
  17.         {
  18.             Console.Write("{0}", arr[i]);
  19.         }
  20.         Console.WriteLine();
  21.     }
  22.  
  23.     static void add(ref int[] arr, int newVal)
  24.     {
  25.         int index = arr.Length;
  26.         while (arr[--index] <= 0);
  27.         Array.Resize(ref arr, arr.Length + 1);
  28.         for (int i=arr.Length-1; i>index+1; i--)
  29.         {
  30.             int tmp = arr[i];
  31.             arr[i] = arr[i - 1];
  32.             arr[i - 1] = tmp;
  33.         }
  34.         arr[index + 1] = newVal;  
  35.     }
  36.  
  37.  
  38.     static void Main()
  39.     {
  40.         Console.Write("Введите размерность массива:");
  41.         int n = Convert.ToInt32(Console.ReadLine());
  42.         int[] arr = setarr(n);
  43.         Console.WriteLine("Исходный массив:");
  44.         print(arr);
  45.         Console.Write("Введите новое значение:");
  46.         int newVal = Convert.ToInt32(Console.ReadLine());
  47.         add(ref arr, newVal);
  48.         Console.WriteLine("Изменённый массив:");
  49.         print(arr);
  50.     }
  51. }

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


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

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

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

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

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

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