Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с решением ошибки в C#

coda8 Ученик (58), на голосовании 3 недели назад
 partial class Program 
{


static void Main(string[] args)
{

//Ввод индексов в массиве пользователем
Console.WriteLine("Введите число индексов в массиве: ");
int indexNum = int.Parse(Console.ReadLine());


int[] array = new int[indexNum];


//Ввод значения для каждого индекса массива пользователем
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine("Введите значение для элемента массива" + i + ": ");
int value = int.Parse(Console.ReadLine());

array[i] = value;

}

//Вывод массива
//for (int i = 0; i < array.Length; i++)
//{
// Console.WriteLine(array[i]);
//}


//Создание переменных для проверки
string plus = "Увеличить";
string minus = "Уменьшить";



//Проверка на действие
Console.WriteLine("Введите что хотите сделать с массивом (Увеличить или уменьшить): ");
string select = Console.ReadLine();


if (select == "Увеличить " || select == "увеличить")
{

Console.WriteLine("На сколько хотите увеличить массив: ");
int muchPlus = int.Parse(Console.ReadLine());

plArray(ref array, muchPlus, indexNum);

}
if (select == "Уменьшить" || select == "уменьшить")
{
Console.WriteLine("На сколько хотите уменьшить массив: ");
int muchMinus = int.Parse(Console.ReadLine());

delArray(ref array, muchMinus,indexNum);


}
else
{
Console.WriteLine("Такого действия нет :( ");
}



}

//Метод который уменьшает массив на число заданное пользователем
static void delArray(ref int[] array,int muchMinus, int indexNum)
{



int a = array[indexNum] - muchMinus;

Console.WriteLine(a);

}

//Метод который увеличивает массив на число заданное пользователем
static void plArray(ref int[] array, int muchPlus, int indexNum)
{



array[indexNum] += muchPlus;

Console.WriteLine(array[indexNum]);

}




}
Вот такой код, который должен увеличить или уменьшить массив на число введенное пользователем (выдает ошибку: Unhandled exception).
Подскажите что не так с кодом
Голосование за лучший ответ
[ ] [ ] Мастер (1178) 1 месяц назад
Длину массива нельзя изменять. Как вариант, создаешь новый массив с длиной больше/меньше и копируешь значения туда - выводишь. Если отойти от массивов, то можно юзануть List<int>, его длину можно менять
Jurijus Zaksas Искусственный Интеллект (445688) 1 месяц назад
indexNum у тебя всегда указывает на следующий за массивом (несуществующий) элемент. При попытке обращения к нему возникает ошибка.

Изменить размер (!) массива можно методом Array.Resize, но не так, как у тебя.
Похожие вопросы