Программирование/C# решение задач
Дан одномерный массив. Сформировать другой одномерный массив из отрицательных элементов расположенных между максимальным и минимальным элементами исходного массива (Макс и мин числа ищет хорошо,но выводит почему то только их же ,в чем проблема? )
int count = 0;
int f = 1;
int amax = 0;
int amin = 0;
int imin = 0;
int imax = 0;
Console.Write("Введите количество чисел: ");
int s = int.Parse(Console.ReadLine());
int[] a = new int[s];
int[] b = new int[2 + count];
for (int i = 0; i < s; i++)
{
Console.Write($"Номер элемента с индексом {i}: ");
a[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < s; i++)
{
if (a[i] > 0)
{
break;
}
}
amax = a[0];
amin = a[0];
for (int i = 0; i < s; i++)
{
if (a[i] > amax)
{
amax = a[i];
imax = i;
}
}
for (int i = 0; i < s; i++)
{
if (a[i] < amin)
{
amin = a[i];
imin = i;
}
}
Console.WriteLine(imax);
Console.WriteLine(imin);
Console.WriteLine(amax);
Console.WriteLine(amin);
for (int i = 0; i < s; i++)
{
Console.WriteLine("Цикл дошел");
if ((i > imax) && (i < imin) && (f < b.Length- 2))
{
count++;
b[f] = a[i];
++f;
}
}
b[0] = amax;
b[b.Length - 1] = amin;
for (int k = 0; k < b.Length; k++)
Console.WriteLine(b[k]);
Console.ReadLine();
у второго массива размер 2 у тебя
int count = 0;
\\...
int[] b = new int[2 + count]; на С#:
int[] arr = { -8, -21001, 5, -7, 9, 10, -2, 15, -4, 3, -8 };
Span<int> span = new(arr);
int indexStart = span.IndexOf(arr.Min());
int indexEnd = span.IndexOf(arr.Max());
if(indexEnd < indexStart)
{
int temp = indexStart;
indexStart = indexEnd;
indexEnd = temp;
}
var arr2 = arr[(indexStart + 1)..(indexEnd)].Where(x => x < 0);
Console.WriteLine(string.Join( ", " , arr2));
Console.ReadKey();