Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
6 / 6 / 0
Регистрация: 16.09.2018
Сообщений: 182
1

Массив действительного типа, выход за границы массива

16.04.2019, 08:35. Показов 805. Ответов 4

Author24 — интернет-сервис помощи студентам
Вывести массив из элементов действительного типа. Расположить элементы в порядке убывания. Вычислить сумму максимального и минимального элементов.
Код класса:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
namespace WindowsFormsApp1
{
    class Class1
    {
        int[] array;
        public int length;
 
        public Class1(int size)
        {
            array = new int[size];
            length = size;
        }
 
        public int this[int ind]
        {
            set { array[ind] = value; }
            get { return array[ind]; }
        }
        public void Cr()
        {
            Random ran = new Random();
            for (int i = 0; i < length; i++)
            {
                array[i] = ran.Next(-99, 99);
            }
        }
    }
}
Код формы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        Class1 array;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int sum=0;
            int temp=0;
            int min=0;
            int max=0;
            int n = Convert.ToInt32(textBox1.Text);
            array = new Class1(n);
            array.Cr();            
            for (int i = 0; i < n; i++)
            {
                for (int j = i + 1; j < n; j++)
                {
                    listBox1.Items.Add(Convert.ToString(array[i]));
                    if (array[j] < array[i])
                    {
                        temp = array[i];
                        array[i] = array[j];
                        array[j] = temp;
                        {
                            min = array[0];
                            for (i = 0; i < n; i++)
                            {
                                if (min > array[i])
                                {
                                    min = array[i];
                                }
                                max = array[0];
                                for (i = 0; i < n; i++)
                                {
                                    if (max < array[i])
                                    {
                                        max = array[i];
                                    }
                                    sum = min + max;
                                }
                                label1.Text = " " + sum;
                                }
                                }
                            }
                        }
                    }
                }
            }
        }
Проблема в том что почему то выходит за границы массива.
Миниатюры
Массив действительного типа, выход за границы массива  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2019, 08:35
Ответы с готовыми решениями:

Дан одномерный массив действительного типа. Получить массив, состоящий из отрицательных чисел исходного массива
Помогите пожалуйста решить задачку) Дан одномерный массив действительного типа. Получить другой...

Выход за границы типа longint
Програма должна считать число которое выходит за диапазон типа longint , а после записать каждую...

Выход за границы массива
Выход за пределы массива, как исправить, подобная вещь и в C# Sub pol(ByRef a() As Integer,...

Выход за границы массива
хочу создать массив, который наполняеться элементами введенными с клавиатуры. потом надо сравнить...

4
Эксперт .NET
5876 / 4753 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
16.04.2019, 09:05 2
Цитата Сообщение от SmokyStarCat Посмотреть сообщение
Проблема в том что почему то выходит за границы массива.
За границы массива не скажу, но в коде с циклами явная беда. Один сплошной цикл, в котором и сортировка и параллельно вывод в листбокс и поиск минимума и максимума и расчет их суммы.
Разделите циклы.
Расчет суммы мин и макс и ее вывод производите за циклами.
0
6 / 6 / 0
Регистрация: 16.09.2018
Сообщений: 182
21.04.2019, 21:53  [ТС] 3
Помогите кто небудь с выходом за границу массива
0
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
21.04.2019, 22:05 4
SmokyStarCat, а зачем делать через сложные циклы, если можно это задание решить в несколько строк с помощью Linq?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Linq;
 
namespace ConsoleApplication
{
    public class Program
    {
        static void Main(string[] args)
        {
            Random randomGenerator = new Random();
            int arraySize = 10;
            int[] array = Enumerable.Range(0, arraySize).Select(itm => randomGenerator.Next(-20, 21)).ToArray();
 
            Console.WriteLine("Сгенерированный массив: {0}", string.Join("; ", array));
            array = array.OrderByDescending(it => it).ToArray();
            Console.WriteLine("Отсортированный массив: {0}", string.Join("; ", array));
            Console.WriteLine("Сумма максимального и минимального элементов: {0}", array.Max() + array.Min());
            
            Console.ReadKey();
        }
    }
}
Сделал вариант для консоли, но, думаю, разберетесь как переделать по WinForms.
1
548 / 479 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
22.04.2019, 20:49 5
Это задача на 5-6 строчек без всяких классов
0
22.04.2019, 20:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2019, 20:49
Помогаю со студенческими работами здесь

Выход за границы массива
Найдите пожалустай в чем ошибка? ошибка времени выполнения индекс находится за границы массива...

Выход за границы массива
Нужно найти min элементы в исходной матрице и вывести в результат в отдельную матрицу using...

Выход за границы массива
#include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; void umnozh(int** arr, int n,int...

Выход за границы массива
Написал код static void Main(string args) { int n, m, i = 0; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru