C# 生成20个随机数并在数组中搜索数字的C程序(续)

C# 生成20个随机数并在数组中搜索数字的C程序(续),c#,arrays,for-loop,search,int,C#,Arrays,For Loop,Search,Int,我重新发布并编辑了它,因为我不知怎么看不到旧版本的答案。 老问题:我想做一个程序,生成20个随机数,并在数组中搜索一个数字。如果在输入中输入了20个随机数中的一个,那么输出应该显示它在这里。如果该数字不在阅读行中,它应该说是的,它在那里。我想知道如何使所有20个随机数字能够搜索。现在的代码只能搜索右边的号码。即使输入是20个随机数中的一个,除了右边的那一个,它也会说不,不在这里 新功能:我想通过使用2个for循环,一个用于创建数组,一个用于搜索数字来实现这一点。我已经编辑了这个程序有2个for循

我重新发布并编辑了它,因为我不知怎么看不到旧版本的答案。 老问题:我想做一个程序,生成20个随机数,并在数组中搜索一个数字。如果在输入中输入了20个随机数中的一个,那么输出应该显示它在这里。如果该数字不在阅读行中,它应该说是的,它在那里。我想知道如何使所有20个随机数字能够搜索。现在的代码只能搜索右边的号码。即使输入是20个随机数中的一个,除了右边的那一个,它也会说不,不在这里

新功能:我想通过使用2个for循环,一个用于创建数组,一个用于搜索数字来实现这一点。我已经编辑了这个程序有2个for循环,但是输出是奇怪的,正如你在图片上看到的。请通过编辑此代码来帮助我完成工作,但仍然有两个for循环,一个用于创建数组,一个用于搜索数字

在每个数字上,如果不匹配,则打印“否”。您应该使用您定义的isValueFound变量,您可以执行以下操作:

不要在循环中打印任何内容 当有匹配发送时,isValueFound为true,并中断循环 在第二个循环之外,检查isValueFound以确定它是否为found。
此外,您还有机会学习二进制搜索。快乐编码

Console.WriteLineNo它不在这里。;应该在循环之外。只有在检查完所有号码且未找到号码后,才能打印此内容。您拥有isValueFound变量。使用调试器一步一步地完成最后一个for循环,您将看到所发生的情况,同时考虑使用哈希集,这样您就不会有任何重复。此外,hashset将为您提供一个contains方法来检查集合中是否存在数字
 public static void Main(string[] args)
{

  Random random = new Random();
  int[] myIntArray = new int[100];


   for (int i=0; i <20; i++)
   {
     int x = random.Next(100);
     myIntArray[i] = x;
     Console.Write(myIntArray[i] + " ");
   } 
    Console.Write("\nType a number to search for:");
    bool isValueFound = false;
    int z = Convert.ToInt32(Console.ReadLine());
    for (int i = 0; i <20; i++)
     {

       if (z==myIntArray[i]) 
       {
          Console.WriteLine("Yes it is there.");

       }
      else
          Console.WriteLine("No it is not here.");

       }



    Console.ReadKey();
}
   if (z==myIntArray[i]) 
   {
      Console.WriteLine("Yes it is there.");

   }
   else
      Console.WriteLine("No it is not here.");  <- The problem is here

   }