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

时间:2015-12-28 03:26:18

标签: c# arrays

我应该创建一个数组并对其进行初始化,之后我会编写两个辅助方法:一个用于查找数组的最大值,另一个用于查找最小值。但是当我运行它时,都返回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;
        }
    }
}

2 个答案:

答案 0 :(得分:2)

您正在使用每个方法中的空数组替换传递给method的数组 只需从每个方法中删除此行:

arr = new int[10];

答案 1 :(得分:1)

您在每个函数中创建一个大小为10的空数组,然后对其执行操作。相反,重写你的功能:

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

但是在那一点上,你所做的所有功能都在调用另一个,所以你不妨放弃这些功能而只是这样做:

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