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

Индекс находился вне границ массива IndexOutOfRangeException

26.12.2016, 18:05. Показов 638. Ответов 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
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
56
57
58
59
60
61
62
63
namespace zadacha5
{
    public partial class GlavnoForma : Form
    {
 
        public GlavnoForma()
        {
            InitializeComponent();
        }
        static double X;
        static int N;
        static int[] A = new int[N];
        public void KnopkaDlyaVvoda_Click(object sender, EventArgs e)
        {
            int N = int.Parse(VvodRazmeraMassiva.Text);
            string[] sNums = VvodChiselMassiva.Text.Split(',');
            if (N > sNums.Length)
            {
                MessageBox.Show("Длина массива не соответствует введенному!");
                return;
            }
            int[] A = new int[N];
            for (int i = 0; i < N; i++)
                A[i] = int.Parse(sNums[i]);                
        }
        private void KnopkaVichisleniya_Click(object sender, EventArgs e)
        {
            if (VvodChislaX.Text == String.Empty)
            {
                MessageBox.Show("Вы не ввели X");
                return;
            }
            if (VvodRazmeraMassiva.Text == String.Empty)
            {
                MessageBox.Show("Вы не ввели размер массива");
                return;
            }
            if (VvodChiselMassiva.Text == String.Empty)
            {
                MessageBox.Show("Вы не ввели элементы массива");
                return;
            }
            int X1 = 0, X2 = 0;
            double average = Math.Abs(X - (A[0] + A[1]) / 2.0);//Вот тут
            for (int i = 0; i < A.Count() - 1; i++)
            {
                for (int j = i + 1; j < A.Count(); j++)
                {
                    if (Math.Abs(X - (A[i] + A[j]) / 2.0) < average)
                    {
                        average = Math.Abs(X - (A[i] + A[j]) / 2);
                        X1 = i; X2 = j;
                    }
                }
            } Vivod2uhChisel.Text = ("Среднее арифметическое чисел "+A[X1]+","+A[X2]+" ближе всего к "+X);
        }
 
        public void KnopkaDlyaVvodaX_Click(object sender, EventArgs e)
        {
            X = int.Parse(VvodChislaX.Text);
        }
    }
}
Подскажите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2016, 18:05
Ответы с готовыми решениями:

System.IndexOutOfRangeException: "Индекс находился вне границ массива."
По идеи должно выводить в новый файл но изменённый но пишет ошибку...

Индекс находился вне границ массива с#
Помогите не могу понять почему не работает вот код :using System; using...

Индекс находился вне границ массива
Пишет, что Индекс находился вне границ массива! Не могу понять, что не так, вроде проверил, но...

Индекс находился вне границ массива
почему так происходит что поправить надо ? using System; using System.Collections.Generic;...

4
25 / 25 / 14
Регистрация: 14.07.2016
Сообщений: 108
26.12.2016, 18:22 2
Подозреваю, что в один момент времени
C#
1
int j = i + 1
значение индекса j в массиве A превысит максимальное значение, которое возможно (A.Count-1).
Не?
А тех задание какое? Что нужно делать с массивом?
0
0 / 0 / 0
Регистрация: 26.12.2016
Сообщений: 5
26.12.2016, 18:41  [ТС] 3
Дано действительное число X и массив A, содержащий N значений. В массиве найти два члена, среднее арифметическое которых ближе всего к X.
0
25 / 25 / 14
Регистрация: 14.07.2016
Сообщений: 108
26.12.2016, 22:19 4
Извиняюсь, не разглядел код внимательно
строка 12
Цитата Сообщение от Gwynb1e1dd Посмотреть сообщение
static int[] A = new int[N];
строка 22
Цитата Сообщение от Gwynb1e1dd Посмотреть сообщение
int[] A = new int[N];
1
0 / 0 / 0
Регистрация: 26.12.2016
Сообщений: 5
27.12.2016, 06:52  [ТС] 5
Большое спасибо, понял ошибку
0
27.12.2016, 06:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2016, 06:52
Помогаю со студенческими работами здесь

Индекс находился вне границ массива
подскажите почему так может быть using System; using System.Collections.Generic; using...

Индекс находился вне границ массива
Создаю автоматическое создание PictureBox для tableLayoutPanel размером 6 на 6 и выскакивает ошибка...

Индекс находился вне границ массива
Доброй ночи, возникает ошибка &quot;Индекс находился вне границ массива&quot; using System; using...

Индекс находился вне границ массива
Хаи. проблема тут помогите как можете... int k = 0; string secondLine; ...


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

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