gpt4 book ai didi

c# - 在自定义方法中将最小值 (array.Min()) 分配给数组中的元素

转载 作者:行者123 更新时间:2023-11-30 22:51:46 27 4
gpt4 key购买 nike

对于初学者来说,我是 C# 的新手,这是针对编程 1 类(class)的。这是一个控制台应用程序。我必须使用两种自定义方法来允许用户在已分配 EX 的数组中输入最多 10 个值。 int[] numberArray = new int[10] 这是一个计算机测试问题,否则我只是定义了数组并将长度设置为用户输入的条目数。在第一种方法中,您设置循环以允许用户输入 10 个值,或者如果输入标记值 999,则退出循环。第二种方法显示输入值的统计信息(数组包含的值的数量、最小值、最大值、值的总和以及平均值)。这是我为分配预定义参数的统计方法,里面是我的代码:

public static void Statistics(int[] array, int els, out int high, out int low, 
out int sum, out double avg)
{
//set statistic values via the arguments
els = count;
high = array.Max();
low = array.Min();
sum = array.Sum();
avg = array.Average();
//output the statistics
WriteLine("The array has {0} values", els);
WriteLine("The highest value is {0}", high);
WriteLine("The lowest value is {0}", low);
WriteLine("The sum of the values is {0}", sum);
WriteLine("The average is {0}", avg);
}

我发现的问题是,即使用户没有输入 10 个总值,最小值也始终设置为 0。根据教授的建议,我尝试使用 for 循环迭代计数值,即我用什么来分配输入的值的数量。执行此操作时,low 变量算作未分配(因为它是 out 并且需要分配值)。我认为这是因为它在 for 循环中时被视为局部变量。除了正确分配的最小值之外,其他所有内容都会检查,所以这是我的主要问题和关注的是,如果用户没有输入 10 个值,我将如何为其分配适当的最小值。如果用户确实输入了 10 个值,则最小值是正确的。作为旁注,我让 count 工作的方法是将它设置为 public 并且在 main() 方法之外,以允许它在 for 循环内时被分配,并嵌套 if 语句以确定是否已输入标记值。我主要认为 Statistics 方法是我的问题所在,但这里是另一种方法的代码,以防可以进行改进,或者这可能就是问题所在。

{
int x;
string inputString;
WriteLine("Enter an integer: ");

for (x = 0; x < array.Length; ++x)
{
inputString = ReadLine();
//Will break the loop to continue to next method or line
if (int.Parse(inputString) == 999)
{
// count how many times we entered in data
count = x;
break;
}
// will add input to array and continue until sentinel value is entered
array[x] = int.Parse(inputString);
WriteLine("Enter another integer: ");
}

count = x;
return x;
}

我只添加了 int = x,因为该方法需要返回一个 int,我不确定如何让它工作。

最佳答案

您还没有显示代码,但是在您创建大小为 10 的数组的地方,可能会将该数组初始化为 10 个都等于 0 的元素。

如果你跟踪你在那个数组中放了多少东西,你可以做

array.Take(count).Min();

或者您可以在获取每个输入时动态地增加数组(或者理想情况下,只使用通用列表)。但是,根据您的教授,可能对允许使用的内容有不同的要求

关于c# - 在自定义方法中将最小值 (array.Min()) 分配给数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58868908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com