C#数组-识别输入是否重复

时间:2018-10-19 21:20:45

标签: c#

我想创建一种算法来识别用户输入是否重复。如果重复,它将提示用户一条消息,如果不重复,将继续该过程。

public static class Program 
{
    public static void Main() 
    {
        Console.WriteLine("input array of numbers: );

        int[] array = new int[4];

        for(int i=0; i<3; i++)
        {
            array[i] = int.Parse(Console.ReadLine());

            if(array[i] == array[0])
            {
                Console.WriteLine("repeating inputs")
            }
        }                     
        Console.WriteLine("Highest number is:" + array.MaxLenght);           
        Console.ReadLine();
    }
}

说明:消息“数字数组间:”将提示用户,然后用户将输入数字。如果用户输入了相同的号码,或者如果已经输入了该号码,则将通过诸如“重复输入!输入另一个号码”之类的消息提示用户。用户输入先前中断的唯一编号后,程序将继续并在输入的基础上打印出最大编号。

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确,但这是我可以从您的帖子中推断出来的内容: 您想从用户那里得到输入并检查是否重复输入,然后输出最高的数字(根据Console.WriteLine(“最高数字为:” + array.MaxLenght);)

这就是我的处理方式

Console.WriteLine("input array of numbers: ");
        List<int> uniqueInts = new List<int>();
        int[] array = new int[4];
        for (int i = 0; i < 3; i++)
        {
            array[i] = int.Parse(Console.ReadLine());
            if (!uniqueInts.Contains(array[i]))
                uniqueInts.Add(array[i]);
        }

        //getting the max number
        //assuming the first number is the max
        int max = uniqueInts[0];

        for (int i = 1; i < uniqueInts.Count; i++)
        {
            if (max < uniqueInts[i])
                max = uniqueInts[i];
        }

        Console.WriteLine("The highest number is : " + max);

答案 1 :(得分:0)

我对这个答案有很多假设。假设您有if(array[i] == array[0]),我假设您正在努力在当前迭代之前获取商品的价值。

如果是这种情况,只需将array[0]更改为array[i-1]

等等!在此之前,您需要添加检查以确保您不在第一次迭代中。否则,您将在第一次迭代中引发异常,因为您将尝试获取array[-1],这是无效的。

for(int i=0; i<3; i++)
{
   array[i] = int.Parse(Console.ReadLine());
   if(i > 0)
   {
       if (array[i] == array[i-1])
           Console.WriteLine("repeating inputs")
   }
}

进行一些更改,我想您会得到想要的。