Сдвиг трех максимальных элементов в начало массива - C#
Формулировка задачи:
Всем доброго времени суток! я на этом сайте первый раз, помогите пожалуйста мне с заданием:
3.5.1 Сформировать массив 25 целых случайных чисел в диапазоне от минус
40 до 60. Напечатать его. Найти 3 maxчисла и поместить их в начало массива
(сортировку чисел использовать запрещается). Напечатать новый массив.
Пожалуйста не надо оставлять ссылки типа "посмотри тут ,посмотри там...." там конечно же есть решения ,но их мы не проходили , точнее решения этим методом.
Мне надо до завтра ,прошу помощи с решением задачи и если сможете то блок схему ... очень на вас надеюсь !
вот код как мы решали похожие задачи
usingSystem;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
classProgram
{
staticvoid Main(string[] args)
{
int i, j, k;
int[] a = newint[20];
Random rnd = newRandom();
// формируем случайным образом массив 20 чисел
// выводим их на экран монитора
Console.WriteLine("Исходный массив: ");
for (i = 0; i <= 19; i++)
{
a[i] = rnd.Next() % 81 - 40;
Console.Write(" {0}", a[i]);
}
Console.WriteLine();
Console.WriteLine();
// Сортировка положительных чисел массива по убыванию
for (i = 0; i < 19; i++)
for (j = i+1; j <= 19; j++)
if (a[i] >= 0 && a[i] < a[j])
{
k = a[i]; a[i] = a[j]; a[j] = k;
}
// выводим их на экран монитора массива после сортировки
Console.WriteLine("Массив после сортировки: ");
for (i = 0; i <= 19; i++)
Console.Write(" {0}", a[i]);
Console.WriteLine();
30
Console.WriteLine();
Console.WriteLine("Дляпродолжениянажмитеклавишу Enter");
Console.ReadLine();
}
}
}
Решение задачи: «Сдвиг трех максимальных элементов в начало массива»
textual
Листинг программы
Random gen = new Random(); int[] ar1 = new int[25]; int[] arNew = new int[25]; int j=3; for (int i = 0; i < ar1.Length; i++) ar1[i] = gen.Next(-40, 60); int max1=-40, max2=-40, max3=-40; int index1=0, index2=0, index3=0; string S = string.Join(",", ar1); Console.WriteLine("Старый массив :" + S); for (int i = 0; i < ar1.Length; i++) if (max1 < ar1[i]) { index1 = i; max1 = ar1[i]; } for (int i = 0; i < ar1.Length; i++) if (max2 < ar1[i]) { if (i == index1) continue; index2 = i; max2 = ar1[i]; } for (int i = 0; i < ar1.Length; i++) if (max3 < ar1[i]) { if (i == index2 || i == index1) continue; index3 = i; max3 = ar1[i]; } arNew[0]=max1; arNew[1] = max2; arNew[2]=max3; for (int i = 0; i < ar1.Length; i++) if (i != index2 && i != index1 && i != index3) { arNew[j] = ar1[i]; j++; } Console.WriteLine("max1="+max1.ToString() +"max2="+max2.ToString() +"max3="+max3.ToString()); Console.WriteLine("Новый массив : " + string.Join("," , arNew));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д