我正在使用C#,我正在做一些修改问题。我试图在随机生成的数组(我编码)中找到最小的值。我的老师要求我们在不使用.Min函数的情况下找到该数组中的最小值,因为这是一个算法模块。下面的代码显示了我编写的用于创建数组的内容。不知道如何从这里开始。谢谢你们。
int[] myRandom = new int[10];
int min = 0;
int max = 19;
Random randNum = new Random();
for (int i = 0; i < 10; i++)
{
myRandom[i] = randNum.Next(min, max);
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(myRandom[i]);
}
答案 0 :(得分:9)
简单的方法是使用Min()
linq扩展方法:
var min = myRandom.Min();
Console.WriteLine(min);
但如果你需要手动完成,你可以这样做:
//int min = int.MaxValue; //This variable stores current min value during each iteration.
int min = myRandom[0]; //If first value of myRandom is the minimum then ok, you already have it, if not it will be replaced in iterations
for (int i = 0; i < myRandom.Length; i++)
if (myRandom[i] < min) //Compare each value of the array with the current min value
min = myRandom[i];
Console.WriteLine(min);
答案 1 :(得分:2)
这是最好的解决方案。 您可以找到最小值并同时生成数组,如下所示:
int minValue = int.MaxValue;
for (int i = 0; i < 10; i++)
{
myRandom[i] = randNum.Next(min, max);
if (myRandom[i] < minValue)
{
minValue = myRandom[i];
}
}
Console.WriteLine(minValue);
通过这样做,您不必第二次循环数组以找到最小值。