查找数组的最大值和最小值将返回0

本文关键字:返回 最小值 数组 最大值 查找 | 更新日期: 2023-09-27 18:28:22

我应该创建一个数组并初始化它,然后我要编写两个辅助方法:一个用于查找数组的最大值,另一个用于最小值。但当我运行它时,两者都返回0。这是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArraysMethodsFiles
{
    class Program
    {
        static void Main(string[] args)
        {
            int thisMinValue = minValue(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
            int thisMaxValue = maxValue(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
            int theseValues = values(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
            Console.WriteLine(theseValues);
            Console.WriteLine(thisMinValue);
            Console.WriteLine(thisMaxValue);
            Console.ReadLine();
        }
        static int values(int[] arr)
        {
            int sum = 0;
            arr = new int[10];
            for (int i = 0; i <= arr.Length; i++)
            {
                sum += i;
            }
            return sum;
        }
        static int maxValue(int[] arr) 
        {
            arr = new int[10];
            int max = arr.Max();
            return max;
        }
        static int minValue(int[] arr)
        {
            arr = new int[10];
            int min = arr.Min();
            return min;
        }
    }
}

查找数组的最大值和最小值将返回0

您将在每个方法中用一个空数组替换传递给方法的数组
只需从每种方法中删除这一行:

arr = new int[10];

您在每个函数中创建一个大小为10的空数组,然后在此基础上预形成操作。相反,重写你的函数如下:

static int maxValue(int[] arr) => arr.Max();
static int minValue(int[] arr) => arr.Min();

但在这一点上,您所要做的只是调用另一个函数,所以您还不如放弃这些函数,只执行以下操作:

int thisMinValue = (new int[] { 1, 2, 3, /* ... */ 10 }).Min();