Выход за границы массива - 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)