Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2020, 02:36   #1
Semen1
Новичок
Джуниор
 
Регистрация: 27.05.2020
Сообщений: 3
Вопрос Одномерные массивы на C#

Всем привет ! Возникли некоторые проблемы с задачами, которые написал сам по условию, поэтому прошу, пожалуйста помощи у вас, так сказать взгляд со стороны. Буду рад всем предложениям, идеям и исправлениям)

Задача 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();
                }
            
        }
Изображения
Тип файла: png Ко 2 задаче пояснение.PNG (21.4 Кб, 1 просмотров)
Semen1 вне форума Ответить с цитированием
Старый 27.05.2020, 06:38   #2
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

про-комментируйте в листинге все строки

особенно:

for (j = 1; j < i; j--)
for (i = 0; i < n; n--)
for (j = 0; j < i; n--)


Возможно вместо

} } }
label3.Text = mas[i].ToString();
}

Правильнее иначе типа того }:

} }
label3.Text = mas[i].ToString();
} }
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 27.05.2020 в 20:06.
сфинкс вне форума Ответить с цитированием
Старый 27.05.2020, 10:11   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Комментарий в одну строку: мрак и ужас !
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы Maxpaen Паскаль, Turbo Pascal, PascalABC.NET 2 24.05.2015 10:42
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Одномерные массивы(С++) Scarletred Общие вопросы C/C++ 0 03.04.2010 03:34
Одномерные массивы Takada_sony Помощь студентам 8 25.03.2010 17:50
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12