如何在C#循环中找出100个34.5~42.0区间随机数的最大值并打印
C# 生成区间随机数并取最大值实现方案
你可以通过在循环中追加最大值跟踪逻辑实现需求,完整可运行代码如下:
using System; class Program { static void Main() { Random rnd = new Random(); const double MAX = 42.0; const double MIN = 34.5; // 初始化最大值变量,初始值设为区间最小值即可 double maxValue = MIN; for (int i = 0; i < 100; i++) { double num = rnd.NextDouble() * (MAX - MIN) + MIN; Console.WriteLine("{0:f1}", num); // 每次生成新随机数后更新最大值 if (num > maxValue) { maxValue = num; } } // 循环结束后打印最大值 Console.WriteLine($"100次随机数的最大值为:{maxValue:f1}"); } }
可选简化方案(使用LINQ)
如果你不想手动写比较逻辑,也可以将生成的随机数存入集合后调用LINQ提供的最大值方法,代码如下:
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { Random rnd = new Random(); const double MAX = 42.0; const double MIN = 34.5; List<double> numList = new List<double>(); for (int i = 0; i < 100; i++) { double num = rnd.NextDouble() * (MAX - MIN) + MIN; Console.WriteLine("{0:f1}", num); numList.Add(num); } double maxValue = numList.Max(); Console.WriteLine($"100次随机数的最大值为:{maxValue:f1}"); } }
注意:使用LINQ方案需要额外引入
System.Linq命名空间,否则无法调用Max()方法。
内容的提问来源于stack exchange,提问作者Lior Madav
相关产品推荐
相关产品推荐

