Софтуерно Инженерство
Loading...
+ Нов въпрос
nickwork avatar nickwork 277 Точки

Провери какво ще стане ако ти подадът само едно число...другото ми изглежда вярно.

Като вариант ти пускам код който решава тази задача

 

var nums = Console.ReadLine().Split().Select(int.Parse).GroupBy(x => x).OrderByDescending(x => x.Count()).ToArray();

 Console.WriteLine(nums[0].Key);

0
MartinBG avatar MartinBG 2103 Точки

Имаше грешки в логиката на решението - например рестартиране на брояча, ако еднаквите числа не са последователни.

Преправен код:

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        var numbers = Console.ReadLine()
            .Split(" ", StringSplitOptions.RemoveEmptyEntries)
            .Select(int.Parse)
            .ToArray();

        var mostOccurence = 0;
        var mostCommonNumber = 0;

        for (var i = 0; i < numbers.Length; i++)
        {
            var occurence = 1;
            var number = numbers[i];
            for (var j = i + 1; j < numbers.Length; j++)
            {
                if (number == numbers[j])
                {
                    occurence++;
                }
            }

            if (occurence > mostOccurence)
            {
                mostOccurence = occurence;
                mostCommonNumber = number;
            }
        }

        Console.WriteLine(mostCommonNumber);
    }
}

 

0
22/05/2020 14:38:10