【发布时间】:2015-03-12 14:06:28
【问题描述】:
我正在尝试对一些值进行排序并将它们放入二维数组中,但我不断发现数组中所有位置的值都是 0。
我的代码看起来有点像这样,这是简短的版本。重要的一点是“分类”数组,我想做的是用 y 的值填充每个特定位置 ex [0,a] 的数组。
class Program
{
struct Säljare
{
public int artiklar;
}
static void Main(string[] args)
{
Säljare[] s = new Säljare[6];
for (int x = 0; x <= 5; x++)
{
Console.Write("Antal sålda artiklar: ");
s[x].artiklar = int.Parse(Console.ReadLine());
}
Console.WriteLine(s.Length);
int[,] kategori = new int[2,6];
int a = 0;
int b = 0;
int y = 0;
while (y < s.Length)
{
if (s[y].artiklar < 50)
{
kategori[0, a] = y;
a++;
}
else if (50 <= s[y].artiklar)
{
kategori[1, b] = y;
b++;
}
y++;
}
Console.WriteLine("Antal");
int z = 0;
for (int x = 0; x < a; x++)
{
kategori[0, x] = z;
Console.WriteLine(s[z].artiklar);
}
for (int x = 0; x < b; x++)
{
kategori[1, x] = z;
Console.WriteLine(s[z].artiklar);
}
}
}
【问题讨论】:
-
你调试了吗?初始化时整数数组将始终充满零。
s.Length等于什么?您必须包括s是什么以及它包含哪些数据,以便我们在这里真正为您提供帮助。 -
是的,我已经尝试过了,但没有出现任何错误。 s.Legnth 指的是一个结构体,它是代码的一部分,它在任何情况下都等于 6。
-
可能没有
errors出现。但至少您可以遵循您的逻辑并监控您的变量,以便为您提供一个线索,您在哪里出错了。这似乎并不难通过最少的调试来追踪。 -
问题是我尝试过使用跟踪,写出 int b 和 int a 等等于什么,并且 else if 到目前为止工作没有问题。它只是由于某种原因没有得到任何值的实际数组。
-
我刚刚运行了您的代码,它按编码工作。 [0,x] 和 [1, x] 数组都填充了它们的值。你能举例说明你的输入和期望的输出吗?