0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 15
1

Заполнение массива и ошибка "Индекс находился вне границ массива"

07.11.2013, 21:36. Показов 1655. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как исправить проблему?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int i = 0; i <= n; i= i + 1 )
            {
                Console.WriteLine("Введите элемент массива № " + i);
                while (temp == false)
                {
                    input = Console.ReadLine();
                    if (int.TryParse(input, out mas[i]))
                    {
                        temp = true;
                    }
                    else Console.WriteLine("Ну, же! Элементы типа int!");
                }
            }
Миниатюры
Заполнение массива и ошибка "Индекс находился вне границ массива"  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2013, 21:36
Ответы с готовыми решениями:

Ошибка: Индекс находился вне границ массива
Программа считывает файл с текстом и должна выводить слова, начинающиеся с заглавной буквы. При...

Ошибка: Индекс находился вне границ массива
Пишу программку, всю не скину у нее объем оч большой, но ... обрывок дам. private void...

Ошибка: индекс находился вне границ массива
Как исправить ошибку? using System; using System.Collections.Generic; using System.Linq;...

Ошибка: Индекс находился вне границ массива
Здравтвуйте, подскажите пожалуйста, в чем ошибка Код: double x = n - s; int k =...

6
369 / 341 / 108
Регистрация: 12.02.2013
Сообщений: 653
07.11.2013, 21:38 2
for (int i = 0; i < n; i= i + 1 )
1
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 15
07.11.2013, 21:39  [ТС] 3
Все равно не работает(
Миниатюры
Заполнение массива и ошибка "Индекс находился вне границ массива"  
0
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
07.11.2013, 21:44 4
потому что верхний индекс массива меньше его длины на 1, у вас n = его длине, используя оператор <= (меньше или равно), цикл делает еще одну итерацию с i = длине массива и, в результате, выходит за его границы, оттого и происходит исключение.

Добавлено через 1 минуту
типа-псевдокодом):
C#
1
arr.Length = UpperBound(arr) + 1;
где UpperBound - функция получения верхнего индекса массива.
0
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 15
07.11.2013, 21:55  [ТС] 5
так как будет выглядеть в итоге?
0
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
07.11.2013, 22:00 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int length;
            Console.WriteLine("Введите длину массива: ");
            int.TryParse(Console.ReadLine(), out length);
            var array = new int[length];
 
            for(var i = 0; i < array.Length; i++)
            {
                Console.WriteLine("Введите {0}-ый элемент массива:", i);
                if (!int.TryParse(Console.ReadLine(), out array[i]))
                    Console.WriteLine("Числа вводи, зараза!");
            }
 
            Array.ForEach(array, Console.WriteLine);
            Console.ReadKey();
        }
    }
}
как-то так.
1
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 15
07.11.2013, 22:05  [ТС] 7
я напортачил

C#
1
2
3
int n = 0;
 
            int[] mas = new int[n];
и он сразу же выход за границу дает
0
07.11.2013, 22:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2013, 22:05
Помогаю со студенческими работами здесь

Ошибка:Индекс находился вне границ массива
Помогите исправить ошибку.В чем она именно тут состоит. Ведь по логике записано все верно. ...

Ошибка: Индекс находился вне границ массива
private void button1_Click(object sender, EventArgs e) { int a = new int; ...

Ошибка! Индекс находился вне границ массива
При выборе максимизации или минимизации возникает такая ошибка Пользуюсь примером отсюда...

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

Метод для сортировки массива, методом пузырька - индекс находился вне границ массива
Доброго времени суток. Я изучаю С# недавно. Прочел похожие темы на форму, но так и не понял, как...

Индекс находился вне границ массива
После того как я сгенерировал массив, и должна выполнятся сортировка, выдает ошибку &quot;Индекс...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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