所以,我制作了一个程序,该程序应该收集你输入的数字,然后将它们倒数。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace K4_Labb_3
{
class Program
{
static void Main(string[] args)
{
Console.Write("Ange antalet heltal du vill lagra i fältet: ");
int heltal = int.Parse(Console.ReadLine());
int[] i = new int[heltal];
Console.WriteLine("Ange " + heltal + " heltal: ");
for (int j = 0; j < i.Length; j++)
{
int o = int.Parse(Console.ReadLine());
i[j] = o;
}
Console.WriteLine("Talen utskrivna baklänges: " );
for (int l = i.Length; l > 0; l--)
{
Console.Write(i[l]);
}
}
}
}
但是我收到错误“索引超出了数组的范围”,我想知道是否有人可以帮助我,并解释错误。
答案 0 :(得分:3)
问题在这里:
for (int l = i.Length; l > 0; l--)
当您有一个长度为LEN
的数组时,您只能访问索引为0, 1, 2, ..., LEN-1
的元素。
答案 1 :(得分:0)
在打印阵列时,你是从一个超过极限的地方开始的。如果长度为5,则数组位置为0,1,2,3,4。 但是在你打印的程序中,你从5开始,这就是抛出错误而且是正确的。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
class Program
{
static void Main(string[] args)
{
Console.Write("Ange antalet heltal du vill lagra i fältet: ");
int heltal = int.Parse(Console.ReadLine());
int[] i = new int[heltal];
Console.WriteLine("Ange " + heltal + " heltal: ");
for (int j = 0; j < i.Length; j++)
{
int o = int.Parse(Console.ReadLine());
i[j] = o;
}
Console.WriteLine("Talen utskrivna baklänges: ");
for (int l = i.Length-1; l >= 0; l--)
{
Console.Write(i[l]);
}
}
}
}