如果一个方法中有两个或多个函数,你会怎么做。我遇到的问题是我需要从 maxminavg 方法返回多个变量,但我不知道如何制作它,因此每个新变量都将值从 maxminavg 方法传送到 main 方法。static void Main(string[] args) { double max = 0d; double sum = 0d; double min = arr[0]; double avg = sum / arr.Length; double avgrnd = Math.Round(avg, 2); int index1 = 0; int index2 = 0; int index3 = 0; string[] txt = File.ReadLines(@"c: \Users\Stark\Moisture_Data.txt").ToArray(); double[] arr = txt.Select(Double.Parse).ToArray(); print(arr); Console.WriteLine(); maxminavg(arr, sum, max, min, avg); Console.WriteLine(); Index(arr, max, min, avgrnd, index1, index2, index3); Console.ReadLine(); } public static void maximinavg(double[] arr, double sum, double max, double min, double avg) { for (int i = 0; i < arr.Length; i++) { sum += arr.Length; if (max < arr[i]) { max = arr[i]; } if (min > arr[i]) { min = arr[i]; } } avg = sum / arr.Length; Console.Write("\nMaximum value in array: {0}, Mimimum value {1}, average value {2}", max, min, avg); } public static void Index(double[] arr, double max, double min, double avgrnd int index1, int index2, int index3) { for (int i = 0; i < arr.Length; i++) { if (max == arr[i]) { index1 = i; } if (min == arr[i]) { index2 = i; } if (avgrnd == arr[1]) { index3 = i; } } Console.Write("\nMax index {0}, Min index {1}, avg index {2}", index1, index2, index3); }
2 回答
HUWWW
TA贡献1874条经验 获得超12个赞
函数内使用的变量范围仅限于该函数。所以你应该按照 sjdm 的建议返回 max 的值。
另一种方法是使用 ref 关键字。例如
在主要方法中:
最大值 = 最大值(arr,总和,参考最大值);
最大值法签名:
public static void max(double[] arr, double sum, ref double max)
- 2 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消