【发布时间】:2020-08-31 00:26:21
【问题描述】:
我想编写一个程序来生成 20 个随机数并在数组中搜索一个数字。如果在输入中输入了 20 个随机数之一,则输出应显示“它在这里”。如果数字不在 ReadLine 中,它应该说“是的,它在那里”。我想知道如何让所有 20 个随机数都能够搜索。现在的代码只能搜索右边的数字。即使输入是 20 个随机数之一,除了右边的那个,它也会说“不,它不在这里。”
图片是我当前的输出。它显示 20 个数字。Output1Output2
public static void Main(string[] args)
{
Random random = new Random();
int[] myIntArray = new int[100];
for (int i = 1; i <= 20; i++)
{
int x = random.Next(100);
myIntArray[i] = x;
Console.Write(myIntArray[i] + " ");
if (i == 20)
{
Console.Write("\nType a number to search for:");
int z = Convert.ToInt32(Console.ReadLine());
if (z == x)
{
Console.WriteLine("Yes it is there.");
}
else
{
Console.WriteLine("No it is not here.");
}
}
}
Console.ReadKey();
}
【问题讨论】:
-
听起来像是包含检查。对于数组,您必须使用静态函数来执行此操作,存在:docs.microsoft.com/en-us/dotnet/api/system.array.exists |然而,它确实使用了一些更复杂的高级检查,而不是像“包含”这样的简单相等。
-
您是否尝试过使用调试器单步执行并尝试查看这段代码实际在做什么?仅仅基于目测,它看起来并不像你想要的那样接近。
-
错字?
int[] myIntArray = new int[100];new int[20];预期;for (int i = 1; i <= 20; i++)应该是for (int i = 0; i < 20; i++)- 数组从零开始 -
你需要三样东西: 1. 一个用随机数初始化数组的循环。 2.用户输入目标号码的方式。这可以包括一个可选的 do/while 循环,以确保用户输入的内容有效。 3. 一个循环检查用户输入是否在数组中的任何位置 |现在,您的输入和检查“涂抹”在 Loop 1 上。
-
您不需要
if (i == 20),只需将用户输入移出循环即可。
标签: c# arrays search random int