
Задача на C# В массиве A=(a1, а2, ..., аn) удалить все отрицательные элементы, стоящие перед
минимальным элементом массива

Ответы на вопрос

using System;
using System.Linq;
class Program {
static void Main() {
int n = Convert.ToInt32(Console.ReadLine());
int[] a = new int[n];
Random r = new Random();
for (int i = 0; i < a.Length; i++) {
a[i] = r.Next(-100, 101);
Console.Write(a[i] + " ");
}
Console.WriteLine();
int min = a.Min();
int im = 0, k = 0;
while (a[im] != min) {
if (a[im] < 0 && a[im] !=min) k++;
im++;
}
int nb = n - k;
int[] b = new int[nb];
int j = 0;
for (int i = 0; i < n; i++ ) {
if (i < im && a[i] < 0);
else {
b[j] = a[i];
j++;
}
}
foreach (int i in b)
Console.Write (i + " ");
}
}




Для решения этой задачи на C#, нужно выполнить следующие шаги:
- Найти индекс минимального элемента в массиве.
- Удалить все отрицательные элементы, которые находятся перед минимальным элементом.
Вот код на C#, который решает эту задачу:
csharpusing System;
class Program
{
static void Main()
{
int[] arr = { 3, -5, -2, 7, -1, 4, 9, -6 };
// Находим индекс минимального элемента в массиве
int minIndex = FindMinIndex(arr);
// Удаляем отрицательные элементы, стоящие перед минимальным элементом
DeleteNegativesBeforeMin(arr, minIndex);
// Выводим результат
Console.WriteLine("Результат:");
foreach (int num in arr)
{
Console.Write(num + " ");
}
}
// Метод для поиска индекса минимального элемента в массиве
static int FindMinIndex(int[] arr)
{
int minIndex = 0;
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] < arr[minIndex])
{
minIndex = i;
}
}
return minIndex;
}
// Метод для удаления отрицательных элементов перед минимальным элементом
static void DeleteNegativesBeforeMin(int[] arr, int minIndex)
{
for (int i = minIndex - 1; i >= 0; i--)
{
if (arr[i] < 0)
{
// Сдвигаем элементы влево, чтобы "удалить" отрицательный элемент
for (int j = i; j < arr.Length - 1; j++)
{
arr[j] = arr[j + 1];
}
// Уменьшаем размер массива на 1
Array.Resize(ref arr, arr.Length - 1);
}
}
}
}
Важно заметить, что при удалении отрицательных элементов мы производим сдвиг элементов влево и изменяем размер массива с помощью Array.Resize
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili