【发布时间】:2013-12-20 03:07:34
【问题描述】:
我做了一个函数来查找重复的整数并存储和输出它们的数量,因为它们是数组。 我创建名为“Hit”的列表,用于排除重复编号的操作。如果我曾经找到数字的所有重复项,我就不需要再做一次了。 但是“命中”列表不起作用。它给了我超出范围的错误。 例如:我有数组 int[] in_number = {1, 2, 2, 4, 5, 6, 6}; 没有“命中” 它会给我。我已经这样做了。它有效。
0
1 2
1 2
3
4
5 6
5 6
输出
我尝试使用“Hit”(它不起作用)
0
1 2
3
4
5 6
但我想要(最好的方式)
1 2
5 6
代码如下:
namespace arrow
{
class Program
{
static void Main(string[] args)
{
int Min = 0;
int Max = 10;
int[] in_number = new int[100];
Random randNum = new Random();
for (int i = 0; i < in_number.Length; i++)
{
in_number[i] = randNum.Next(Min, Max);
}
duplicate_number_List (in_number);
}
static void dupnumlist (int[] in_number) // Find duplicate numbers
{
List<List<int>> duplicate_pair = new List<List<int>>();
List<int> Hit = new List<int>();
for (int i = 1; i < in_number.Length; i++)
{
List<int> SubList = new List<int>();
foreach (int number in Hit)
{
if (number == in_number[i]) // Will match once
{
i++; // go to next iteration; passing unnecessary
}
}
for (int j = 0; j < in_number.Length; j++)
{
if (in_number[j]==in_number[i])
{
SubList.Add(j);
Hit.Add(in_number[i]);
}
}
duplicate_pair.Add(SubList);
}
foreach (var sublist in duplicate_pair)
{
foreach (var value in sublist)
{
Console.Write(value);
Console.Write(' ');
}
Console.WriteLine();
}
foreach (var value in Hit)
{
Console.Write(value);
Console.Write(' ');
}
Console.WriteLine();
}
}
}
我不想使用内置函数
【问题讨论】:
-
您需要重复的对还是任何重复的?什么规则使数字配对?在您的 {1, 2, 2, 4, 5, 6, 6} 示例中,1 和 5 不重复,为什么它们在您的预期输出中?
-
好的。我需要找到重复的,而不是配对。我不想输出第一个数字,但我想输出。
标签: c#