Всем привет ! Возникли некоторые проблемы с задачами, которые написал сам по условию, поэтому прошу, пожалуйста помощи у вас, так сказать взгляд со стороны. Буду рад всем предложениям, идеям и исправлениям)
Задача 1: Указания к решению: Ввод элементов массива выполнить с помо-
щью датчика случайных чисел. Для всех вариантов N<=100.
Дан массив действительных чисел А(N), значения элементов которо-
го лежат в диапазоне [a,b]. =>
Отсортировать по неубыванию абсолютных величин элементы массива,
находящиеся между последним, дробная часть которого больше 0.5 и
первым, абсолютное значение которого больше 100. Использовать ал-
горитм сортировки вставкой.
Решение :почему то не выводиться массив и правильно ли вообще сортирую?
int a = Convert.ToInt32(textBox1.Text);
int b = Convert.ToInt32(textBox2.Text);
Random rnd = new Random();//создание объекта для генерации псевдослучайных чисел
int[] mas = new int[100];//пустой массив для заполнения
int n, j, buf;
for (int i = 0; i < 100; i++) //цикл для заполнения массива
{
mas[i] = rnd.Next(a, b);//случайное число из диапазона
for (j = 1; j < i; j--)
{
if (mas[i] % 10 > 0.5 && mas[i] > 100) // выполнение условий : ,больше 0.5 и больше 100
{
buf = mas[j];
mas[j] = mas[j + 1];
mas[j + 1] = buf;
}
}
}
label3.Text = mas[i].ToString();
}
Задача 2: Указания к решению. Для ввода чисел использовать генератор слу-
чайных чисел. Для всех вариантов N<=100.
Дан массив целых чисел А(N).
Отсортировать элементы массива в порядке убывания суммы цифр в
записи числа, а затем из каждой группы повторяющихся элементов ос-
тавить по одному. Использовать алгоритм сортировки выбором.
Решение: почему-то тоже не хочется выводить массив и объявлять переменную для последнего for и это вставка или все таки пузырек? И подскажите, пожалуйста как удалять похожие элементы уже в отсортированном массиве, есть какой-то метод у класса Array, например?
static public int summa(int n)
{
int a, s;
a = Math.Abs(n);
s = 0;
while(a > 0)
{
s = s + a % 10;
a = a / 10;
}
return s;
}
private void button1_Click(object sender, EventArgs e)
{
Random rnd = new Random();//создание объекта для генерации псевдослучайных чисел
int n = rnd.Next(100);
int[] mas = new int[n];
int j, i, k;
for (i = 0; i < n; n--)
{
for (j = 0; j < i; n--)
{
if (summa(mas[j]) < summa(mas(j + 1)))
{
k = mas[j];
mas[j] = mas[j + 1];
mas[j + 1] = k;
}
}
}
for (int i = 0; i < n; i++)
{
label1.Text = mas[i].ToString();
}
}