Array.Sort не сортирует одномерный массив - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Подскажите, пожалуйста, что не так с кодом? Задача: В одномерном массиве, состоящем из n вещественных элементов, вычислить: -количество отрицательных элементов массива; -сумму модулей элементов массива, расположенных после минимального по модулю элемента. Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию. Всё шло не плохо, пока не понадобилось упорядочить массив. Пыталась с помощью Array.Sort, но выводит одни нули, не могу понять в чем проблема. Скрин и код прилагается. C# только начала изучать.
private void button1_Click(object sender, EventArgs e)
        {
            textBox2.Text = "";
            textBox3.Text = "";
            Random a = new Random();
            int n = Convert.ToInt32(textBox1.Text);
            int[] mas = new int[100];
            int[] mas1 = new int[100];
            for (int i = 0; i < n; i++) // создаем массив
            {
                if (a.Next(100) > 50) mas[i] = a.Next(5);
                else mas[i] = -a.Next(5);
                textBox2.Text = textBox2.Text + Convert.ToString(mas[i]) + "  ";
            }
            int m = 0;
            for (int i = 0; i < n; i++) //ищем количество отрицательных элементов
            {
                 if (mas[i] < 0)
                m++;
            }
            label2.Text = "количество отрицательных элементов: " + Convert.ToString(m);
 
            int min = Math.Abs(mas[0]);
            int minK = 0;
            for (int i = 1; i < n; i++) //минимальный по модулю элемент
            {
                if (Math.Abs(mas[i]) < Math.Abs(min))
                {
                    min = mas[i];
                    minK = i;
                }
            }
            label4.Text = "минимальный по модулю элемент " + Convert.ToString(min);
            int sum = 0;
            for (int i = minK; i < n; i++) //сумма модулей расположенных после минимального по модулю элемента
            {
                sum = Math.Abs(mas[i]) + sum;
            }
            label3.Text = "Сумма модулей " + Convert.ToString(sum);

            for (int i = 0; i < n; i++) //Заменить все отрицательные элементы массива их квадратами
            {
                if (mas[i] < 0) mas[i] = mas[i] * mas[i];
                textBox3.Text += Convert.ToString(mas[i]) + " ";
              
            }
 
            Array.Sort(mas); //упорядочить элементы массива по возрастанию
            for (int i = 1; i < n; i++)
            {
 
                textBox4.Text += Convert.ToString(mas[i]) + " ";
            }
}

Решение задачи: «Array.Sort не сортирует одномерный массив»

textual
Листинг программы
int[] mas = new int[n];

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы