Выход за границы массива - C# (183484)

Узнай цену своей работы

Формулировка задачи:

Задание

: Составить программу для вычисления величины S по заданной формуле: После ввода значений массива в консоли появляется сообщение "Индекс находится вне границ массива". Как исправить?
 class Program
    {
        public static void Main(string[] args)
        {
            while (true)
            {
                try
                {
                    byte i, j, k, m, n, l;
 
                    Console.WriteLine("Enter  m:");
                    m = Convert.ToByte(Console.ReadLine());
 
                    if (m < 1)
                    {
                        throw new Exception("M < 1! Enter correct data!");
                    }
                    Console.WriteLine("Enter  n:");
                    n = Convert.ToByte(Console.ReadLine());
 
                    if (n < 1)
                    {
                        throw new Exception("n < 1! Enter correct data!");
                    }
                    Console.WriteLine("Enter  l:");
                    l = Convert.ToByte(Console.ReadLine());
 
                    if (l < 1)
                    {
                        throw new Exception("l < 1! Enter correct data!");
                    }

                    double[] a = new double[m];
                    double[] x = new double[l];

                    for (j = 0; j < m; ++j)
                    {
                        Console.WriteLine("Enter a[{0}]:", (j + 1));
                        a[j] = Convert.ToDouble(Console.ReadLine());
                    }
                    Console.WriteLine();
 
                    for (k = 0; k < l; ++k)
                    {
                        Console.WriteLine("Enter x[{0}]:", (k + 1));
                        x[k] = Convert.ToDouble(Console.ReadLine());
                    }
 
                    double sum_1 = 0;
                    for (j = 0; j < m; ++j)
                    {
                        sum_1 += (Math.Cos(a[j]));
                    }
                    double sum_2 = 0;
                    for (i = 0; i < n; ++i) ;
                    {
                        sum_2 += sum_1;
 
                    }
                    double mult = 1;
                    for (k = 0; k < 10; ++k)
                    {
                        mult *= (1 + Math.Exp(-(x[k])));
                    }
 
                    Console.WriteLine("Result: {0}", sum_2 / mult);

                    break;
                }
                catch (FormatException)
                {
                    Console.WriteLine("You entered wrong data! Enter correct data!");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
 
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}

Решение задачи: «Выход за границы массива»

textual
Листинг программы
                  for (k = 0; k < 10; ++k)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы