【发布时间】:2014-11-02 18:58:32
【问题描述】:
情况:
你好,我已经做了一个可以用线性数组执行多个函数的程序,我不想使用预制的数组类,所以我有一些方法,比如 addFirst、addLast、removeFirst、removeLast 等。
我的程序(不是类的一部分)为 addFirst 方法生成一个随机数以添加到数组的“第一个”位置
而
我的程序(不是类的一部分)为 addFirst 方法生成一个随机数,以添加到数组的“Last”位置
问题:
我的问题是,我的 addFirst 似乎无法正常工作,我知道这是因为当我运行我的 displayUI 方法时,应该在数组值的第一个位置的值而不是在数组的最后一个位置。
console.writeline() 之后会发生什么:
Values currently in array: 11, 21, 80, 25
然而,应该发生什么:
Values currently in array: 25, 80, 21, 11
不确定我做错了什么,这是我的 addFirst 代码:
public void addFirst(int value) //Adds an item to the first position in the array.
{
if (isFull())
{
throw new Exception("List Full");
}
else
{
for (int i = count; i > 0; i--)
{
values[i] = values[i--];
}
values[count] = value;
count++;
}
}
【问题讨论】:
-
List
还是调试? -
如果这不是家庭作业,您应该只使用
List<int>类并使用InsertAt()方法。如果是家庭作业,您应该向老师提出这样的问题,以便他们更好地理解他们希望您遇到的问题。 -
我可以问你一个问题:这是一项学习任务还是你只是喜欢重新发明轮子?
-
一条建议:1)绘制操作前后的数组状态; 2) 使用简单的结构; 3) 在调试器中逐行跟踪您的代码。
-
老实说,是的,这是一个家庭作业,可以在不依赖内置数组功能的情况下构建数组类。我在星期五晚上得到了它,直到星期三我才再次上大学,我正在度过我的周末。我今天从一个类图构建了这个,我唯一的问题是,我的 addLast 方法也按我的预期工作,但是我的 addFirst 的输出不是我预期的。这项任务不会很快到期,我只是想把它排除在外。