Нахождение наименьшего элемента массива через рекурсию. С#
Помогите найти решение проблемы, не работает рекурсия по нахождению минимального элемента массива. А по заданию нужно найти минимальный элемент именно через рекурсию.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _4_laba_2
{
class Program
{
static void Main(string[] args)
{
int n, i;
double x;
Console.WriteLine("Введите число элементов массива");
n = Convert.ToInt16(Console.ReadLine());
double[] Data = new double[n];
for (int a = 0; a < n; a = a + 1)
{
Console.WriteLine("Введите элемент массива");
Data[a] = double.Parse(Console.ReadLine());
Console.WriteLine();
}
i = 0;
x = Massiv(Data, i);
Console.WriteLine(x);
Console.Read();
}
public static double nol;
public static double Massiv(double[] Data, int i)
{
if (i < Data.Length)
{
if (Data[i] < nol)
{
nol = Data[i];
i++;
return Massiv(Data, i);
}
}
if (i >= Data.Length)
{
return nol;
}
else
{
i++;
return Massiv(Data, i);
}
}
}
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
public static double findMin(double[] data, int i) {
if (i < data.Length - 1) {
dobule a = findMin(data, i + 1);
return a < data[i]? a : data[i];
} else {
return data[data.Length - 1];
}
}
x = findMin(Data, 0);