HI WELCOME TO KANSIRIS

Subtract the largest even number and smallest odd number in the given array elements

Leave a Comment

One of our YouTube channel subscribers faced this question in a C# written testWrite a program in c# to subtract the largest even number and smallest odd number in the given array elements. This has to be achieved without using LINQ.  


The output of the program should be as shown below. 
 C# program to subtract the largest even number and smallest odd number in the given array elements 

using System;
namespace Demo
{
    class Program
    {
        static void Main()
        {
            int?[] Numbers = { 555, 3, 1, 20, 1000 };

            int? largestEvenNumber = null;
            int? smallestOddNumber = null;

            foreach (int i in Numbers)
            {
                if ((i % 2) == 0)
                {
                    if (!largestEvenNumber.HasValue || i > largestEvenNumber)
                    {
                        largestEvenNumber = i;
                    }
                }
                else
                {
                    if (!smallestOddNumber.HasValue || i < smallestOddNumber)
                    {
                        smallestOddNumber = i;
                    }
                }
            }

            if (largestEvenNumber == null)
            {
                Console.WriteLine("Array does not contain any even number");
            }
            else
            {
                Console.WriteLine("Largest even number = " + largestEvenNumber);
            }

            if (smallestOddNumber == null)
            {
                Console.WriteLine("Array does not contain any odd number");
            }
            else
            {
                Console.WriteLine("Smallest odd number = " + smallestOddNumber);
            }

            if (largestEvenNumber != null && smallestOddNumber != null)
            {
                Console.WriteLine("{0} - {1} = {2}", largestEvenNumber,
                    smallestOddNumber, (largestEvenNumber - smallestOddNumber));
            }
        }
    }
}

The logic for finding the largest even number and smallest odd number becomes much easier when we use the following LINQ functions.
1. Where()
2. Max()
3. Min()

using System;
using System.Linq;
namespace Demo
{
    class Program
    {
        static void Main()
        {
            int?[] Numbers = { 555, 3, 1, 20, 1000 };

            int? largestEvenNumber = Numbers.Where(x => x % 2 == 0).Max();
            int? smallestOddNumber = 
                          smallestOddNumber = Numbers.Where(x => x % 2 != 0).Min();

            if (largestEvenNumber == null)
            {
                Console.WriteLine("Array does not contain any even number");
            }
            else
            {
                Console.WriteLine("Largest even number = " + largestEvenNumber);
            }

            if (smallestOddNumber == null)
            {
                Console.WriteLine("Array does not contain any odd number");
            }
            else
            {
                Console.WriteLine("Smallest odd number = " + smallestOddNumber);
            }

            if (largestEvenNumber != null && smallestOddNumber != null)
            {
                Console.WriteLine("{0} - {1} = {2}", largestEvenNumber,
                    smallestOddNumber, (largestEvenNumber - smallestOddNumber));
            }
        }
    }
}

0 comments:

Post a Comment

Note: only a member of this blog may post a comment.