Решил написать программу для сложения больших чисел с использованием длинной арифметики, но Visual Studio выдаёт ошибку:
Индекс находился вне границ массива.
Как решить данную проблему, чтобы программа работала корректно.
using System;
namespace LongArithmetic
{
class Program
{
static void Main(string[] args)
{
string LongStr1, LongStr2;
int length;
Console.WriteLine("Ведите число 1: ");
LongStr1=Console.ReadLine();
Console.WriteLine("Ведите число 2: ");
LongStr2=Console.ReadLine();
int[] LongAr1= new int [LongStr1.Length];
int[] LongAr2 = new int[LongStr2.Length];
for (int i=0; i<LongStr1.Length; i++)
{
LongAr1[i]=int.Parse(LongStr1[i].ToString());
}
for (int i = 0; i < LongStr2.Length; i++)
{
LongAr2[i] = int.Parse(LongStr2[i].ToString());
}
Array.Reverse(LongAr1);
Array.Reverse(LongAr2);
if (LongAr1.Length > LongAr2.Length)
length = LongAr1.Length;
else
length = LongAr2.Length;
for (int i = 0; i < length; i++)
{
LongAr2[i] += LongAr1[i]; // суммируем последние разряды чисел
LongAr2[i + 1] += (LongAr2[i] / 10); // если есть разряд для переноса, переносим его в следующий разряд
LongAr2[i] %= 10; // если есть разряд для переноса он отсекается
}
Array.Reverse(LongAr2);
for (int i = 0; i < LongAr2.Length; i++)
{
Console.Write(LongAr2[i]);
}
Console.ReadKey();
}
}
}
for (int i = 0; i < length; i++), числа могут быть разной длины, а счетчикiу вас один на оба числа. – eanmos Sep 09 '17 at 17:17longArr2[i+1]заграницу уходит вероятно на последней итерации – teran Sep 09 '17 at 17:17longArr2[i+1]заграницу уходит вероятно на последней итерации – eanmos Sep 09 '17 at 17:28