Другие языки программирования и технологии

Помогите пожалуйста решить задачи по информатике, одномерные массивы. Си шарп. Очень срочно. Пожалуйста!!!!

1. в одномерном массиве все элементы, расположенные после максимального, заменить средним значением элемента массива.
2. Задан одномерный массив размера 10. Сформировать другой одномерный массив из отрицательных элементов, расположенных между максимальным и минимальным элементами исходного массива.
3. задан одномерный массив и число Р. Включить элемент , равный Р, после того элемента массива, который наиболее близок к среднему значению его элементов.
Л)
Лео ))))))
251
using System;
namespace computer_science
{
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
float max, middle, summa;
Int32 indexMax, size;
size = rand.Next(10, 20);
float[] myArray = new float[size];
Console.WriteLine(" Первое задание \n");
for (Int32 n = 0; n < size; n++)
{
myArray[n] = rand.Next(1, 10) + rand.Next(1, 100) / (float)100;
Console.WriteLine(" {0}", myArray[n]);
}
Console.WriteLine();
summa = 0; indexMax = 0; max = myArray[0];
for (Int32 n = 0; n < size; n++)
{
summa += myArray[n];
if (max < myArray[n])
{
max = myArray[n];
indexMax = n;
}
}
middle = (float)summa / size;
indexMax++;
for (Int32 n = indexMax; n < size; n++) myArray[n] = middle;
foreach (float a in myArray) Console.WriteLine(" {0}", a);
Console.WriteLine();
Console.WriteLine(" Второе задание \n");
float min;
Int32 newSize, indexMin, beg, end;
size = 10;
myArray = new float[size];
for (Int32 n = 0; n < size; n++)
{
myArray[n] = rand.Next(-9, 10) + rand.Next(1, 100) / (float)100;
Console.WriteLine(" {0}", myArray[n]);
}
max = min = myArray[0]; indexMax = indexMin = 0;
for (Int32 n = 0; n < size; n++)
{
if (max < myArray[n])
{
max = myArray[n];
indexMax = n;
}
if (min > myArray[n])
{
min = myArray[n];
indexMin = n;
}
}
beg = (indexMin < indexMax) ? indexMin : indexMax;
end = (indexMin > indexMax) ? indexMin : indexMax;
if (end - beg < 2) Console.WriteLine("\n Невозможно сформировать массив! \a");
else
{
newSize = 0;
for (Int32 next = beg + 1; next < end; next++) if (myArray[next] < 0) newSize++;
float[] newArray = new float[newSize];
if (newSize == 0) Console.WriteLine("\n Невозможно сформировать массив! \a");
else
{
for (Int32 n = 0, next = beg + 1; next < end; next++)
{
if (myArray[next] >= 0) continue;
else
{
newArray[n] = myArray[next];
n++;
}
}
Console.WriteLine("\n Вновь сформированный массив: \n");
Console.WriteLine(" Минимальный элемент myArray[{0}] = {1}", indexMin, myArray[indexMin]);
Console.WriteLine(" Максимальный элемент myArray[{0}] = {1}", indexMax, myArray[indexMax]);
Console.WriteLine();
foreach (float a in newArray) Console.WriteLine(" {0}", a);
}
}
Console.WriteLine();
Console.WriteLine(" Третье задание \n");
size = rand.Next(10, 20);
float[] myNewArray = new float[size];
float p;
for (Int32 n = 0; n < size; n++)
{
myNewArray[n] = rand.Next(1, 10) + rand.Next(1, 100) / (float)100;
Console.WriteLine(" {0}", myNewArray[n]);
}
Console.WriteLine();
summa = 0; max = myNewArray[0];
float delta;
for (Int32 n = 0; n < size; n++)
{
if (max < myNewArray[n]) max = myNewArray[n];
summa += myNewArray[n];
}
delta = max;
middle = summa / size;
Int32 middleIndex = 0;
for (Int32 n = 0; n < size; n++)
if (Math.Abs(middle - myNewArray[n]) < delta)
{
delta = Math.Abs(middle - myNewArray[n]);
middleIndex = n;
}
p = rand.Next(1, 10) + rand.Next(1, 100) / (float)100;
Console.WriteLine(" Среднее элементов массива = {0}", middle);
Console.WriteLine(" Ближайший к среднему элемент myNewArray[{0}] = {1}", middleIndex, myNewArray[middleIndex]);
Console.WriteLine(" P = {0}", p);
float[] temp = new float[size];
for (Int32 n = 0; n < size; n++) temp[n] = myNewArray[n];
myNewArray = new float[size + 1];
for (Int32 n = 0, m = 0; n < size; n++)
{
if (n == middleIndex + 1)
{
myNewArray[m++] = p;
myNewArray[m++] = temp[n];
}
else myNewArray[m++] = temp[n];
}
Console.WriteLine();
foreach (float a in myNewArray) Console.WriteLine(" {0}", a);
Console.ReadKey();
}
}
}
ББ
Бахшали Байрамов
93 452
Лучший ответ
1:
Считаешь среднее через
for(i=0; i<n;> max){ xmax = ai; imax = i;}
Потом через for(i=imax + ; i < n; i++) ai = av;

2:
хз... .

3:
Находишь среднее
находишь min(abs(av - ai)) и запоминаешь индекс i
а потом через for присваиваешь a(i+1) = a(i) до n+1
a(i) = P;
EB
Epлiк Boxing <3
757